#include #define mp make_pair #define PII pair #define fi first #define se second using namespace std; const int NMAX=200005; int n,m,len,start[NMAX],stop[NMAX],AIB[NMAX]; long long a[NMAX],b[NMAX],sol[NMAX]; vectorv[NMAX]; vector::iterator it; pair ev[NMAX]; void Dfs(int x) { len++; start[x]=len; for (vector::iterator pit=v[x].begin();pit!=v[x].end();pit++) Dfs(*pit); stop[x]=len; } int zeros(int x) { return x^(x&(x-1)); } void Update(int poz,int val) { for (int i=poz;i=1;i-=zeros(i)) rez+=AIB[i]; return rez; } int main() { int i,x; long long sum,kk,aux; //freopen("date.in","r",stdin); //freopen("date.out","w",stdout); cin.sync_with_stdio(false); cin>>n; for (i=1;i>x; v[x].push_back(i+1); } for (i=1;i<=n;i++) cin>>a[i],ev[++m]=mp(a[i],mp(1,i)); for (i=1;i<=n;i++) cin>>b[i],ev[++m]=mp(b[i],mp(2,i)); sort(ev+1,ev+m+1); Dfs(1); for (i=1;i<=n;i++) cout<