func_code_string: #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;   }   