#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
int l[N];
vector<int>ans;
int par[N];
vector<int>v;
void dfs(int a){
v.pb(l[a]);
if(a==1)return;
dfs(par[a]);
}
void fun(int a, int b){
l[a]=l[b];
if(b==1)return;
fun(par[a],a);
}
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>l[i];
par[1]=1;
for(int i=1;i<n;i++){
int a,b;
cin>>a>>b;
v.clear();
int c=0;
par[b]=a;
dfs(a);
for(int j=0;j<v.size();j++){
for(int k=j+1;k<v.size();k++){
if(v[j]<v[k])c++;
}
}
fun(a,b);
ans.pb(c);
}
for(auto a:ans)cout<<a<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |