Cod sursa(job #2395203)

Utilizator robertrRotaru Stefan Robert robertr Data 2 aprilie 2019 12:29:01
Problema Cerere Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream f("cerere.in");
ofstream g("cerere.out");
int grad[100005],tata[100005],n;
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>grad[i];
    for(int i=1;i<n;i++)
    {
        int a,b;
        f>>a>>b;
        tata[b]=a;
    }
    for(int k=1;k<=n;k++)
    {
        if(grad[k]==0)
            g<<0<<" ";
        else
        {
            int p=k;
            int nr=0;
            while(grad[p]!=0)
            {
                int x=grad[p];
                for(int i=1;i<=x;i++)
                {
                    p=tata[p];
                }
                nr++;
            }
            g<<nr<<" ";
        }
    }
    return 0;
}