Cod sursa(job #2564692)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 2 martie 2020 09:20:46
Problema A+B Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("posta3.in");
ofstream fout("posta3.out");
int i,n,k,a,b,x,t[3010],f[3010],vl,maxi,sol,val[3010],aux;
vector<int> v[3010];
int main()
{
    fin>>n>>x;
    for(i=1;i<n;i++)
    {
        fin>>a>>b;
        v[a].push_back(b);
        t[b]=a;
    }
    a=x;while(t[a]!=0) f[a]=1,a=t[a];
    f[a]=1;
    for(i=1;i<=n;i++) fin>>val[i];
    while(a!=x)
    {
        for(auto it:v[a]) if(f[it]==0) maxi=max(maxi,val[it]); else aux=it;
        a=aux;
        if(val[aux]<maxi) sol++;
    }
    fout<<sol;
    return 0;
}