Cod sursa(job #1536716)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 26 noiembrie 2015 16:11:25
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
int v[100010],k[100010],nr,x,y,i,j,x2,n,p;
ifstream f("cerere.in");
ofstream g("cerere.out");
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>k[i];
    for(i=1;i<n;i++)
    {
        f>>x>>y;
        v[y]=x;
    }
    for(i=1;i<=n;i++)
    if(v[i]==0)
    {
        p=i;
        break;
    }
    for(i=1;i<=n;i++)
    {
        if(k[i]==0)
            g<<"0 ";
        else
        {
            x=i;nr=0;
            while(k[x]!=0 && x!=p)
            {
                x2=x;
                for(y=1;y<=k[x];y++)
                {
                    x2=v[x2];
                    if(x2==p)
                        break;
                }
                x=x2;
                nr++;
            }
            g<<nr<<' ';
        }
    }
}