#include <bits/stdc++.h>
using namespace std;
long long i, j, n, k, l, m, x, y, tot, flag, h, r, ans, koko;
long long a[1000500], b[1005000];
string s;
multiset<long long> f, g;
multiset<long long>::iterator itr;
int main() {
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
    b[i + 1] = b[i] + a[i];
  }
  f.insert(-1);
  f.insert(n);
  g.insert(b[n]);
  for (i = 0; i < n; i++) {
    cin >> x;
    x--;
    itr = f.upper_bound(x);
    r = *itr;
    itr--;
    l = *itr;
    f.insert(x);
    itr = g.find(b[r] - b[l + 1]);
    g.erase(itr);
    g.insert(b[x] - b[l + 1]);
    g.insert(b[r] - b[x + 1]);
    itr = g.end();
    itr--;
    cout << *itr << endl;
  }
  return 0;
}
