#include <bits/stdc++.h>
using namespace std;
long long a[100004][3];
long long b[100004];
long long c[100004];
long long z[100004];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i <= n + 1; i++) {
    a[i][0] = -1;
    a[i][1] = -1;
    a[i][2] = -1;
    a[i][3] = -1;
  }
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> c[i];
  }
  long long man = -1;
  for (int i = n; i > 0; i--) {
    int poz;
    poz = c[i];
    if (a[poz - 1][0] == -1 && a[poz + 1][0] == -1) {
      a[poz][0] = b[poz];
      a[poz][1] = poz;
      a[poz][2] = poz;
    }
    if (a[poz - 1][0] == -1 && a[poz + 1][0] != -1) {
      a[poz][0] = b[poz] + a[poz + 1][0];
      a[poz][1] = poz;
      a[poz][2] = a[poz + 1][2];
      a[a[poz][2]][0] = a[poz][0];
      a[a[poz][2]][1] = poz;
    }
    if (a[poz - 1][0] != -1 && a[poz + 1][0] == -1) {
      a[poz][0] = b[poz] + a[poz - 1][0];
      a[poz][2] = poz;
      a[poz][1] = a[poz - 1][1];
      a[a[poz][1]][0] = a[poz][0];
      a[a[poz][1]][2] = poz;
    }
    if (a[poz - 1][0] != -1 && a[poz + 1][0] != -1) {
      a[poz][0] = b[poz] + a[poz - 1][0] + a[poz + 1][0];
      a[a[poz - 1][1]][0] = a[poz][0];
      a[a[poz + 1][2]][0] = a[poz][0];
      a[a[poz - 1][1]][2] = a[a[poz + 1][2]][2];
      a[a[poz + 1][2]][1] = a[a[poz - 1][1]][1];
    }
    z[i] = max(man, a[poz][0]);
    man = z[i];
  }
  for (int i = 2; i <= n; i++) cout << z[i] << endl;
  cout << 0;
}
