求大佬帮俺看看哪错了
P3365 改造二叉树\
#include <bits/stdc++.h>
using namespace std;
namespace langfengya
{
void Main();
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
langfengya::Main();
return 0;
}
namespace langfengya
{
int n;
int a[100010];
int f[100010][2];
int cur=0;
int cnt[100010];
void read()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<n;i++)
{
int fa,ch;
cin>>fa>>ch;
f[fa][ch]=i+1;
}
}
void dfs(int x)
{
if(!x) return ;
dfs(f[x][0]);
cnt[++cur]=a[x];
dfs(f[x][1]);
}
int ans=0;
int vis[100010];
void solve()
{
int t=0;
for(int i=1;i<=n;i++)
{
t=lower_bound(vis+1,vis+ans+1,cnt[i])-vis;
vis[t]=cnt[i];
ans=max(ans,t);
}
cout<<n-ans<<endl;
}
void Main()
{
read();
dfs(1);
solve();
}
}