#include <bits/stdc++.h>
using namespace std;
int A[100005], P[100005];
int other_end[100005];
long long ans[100005], seg[100005];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; ++i) scanf("%d", &A[i]);
  for (int i = 1; i <= n; ++i) scanf("%d", &P[i]);
  long long res = 0;
  for (int i = n; i >= 1; --i) {
    ans[i] = res;
    int pos = P[i];
    long long sum = A[pos];
    int l = pos, r = pos;
    if (other_end[pos - 1] != 0) {
      l = other_end[pos - 1];
      sum += seg[l];
    }
    if (other_end[pos + 1] != 0) {
      sum += seg[pos + 1];
      r = other_end[pos + 1];
    }
    other_end[l] = r;
    other_end[r] = l;
    seg[l] = sum;
    if (sum > res) res = sum;
  }
  for (int i = 1; i <= n; ++i) cout << ans[i] << endl;
  return 0;
}
