Cod sursa(job #327040)

Utilizator udrescu_cristiUdrescu Cristian udrescu_cristi Data 26 iunie 2009 22:01:35
Problema Cerere Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream>
#include<stdio.h>
 int main()
{
 freopen("cerere.in","r",stdin);
 freopen("cerere.out","w",stdout);
  long n,i,j,k,t=1,t1=1,nr=0,k1;
  long a[100001],b[100001],c[100001],d[100001];
    scanf("%ld\n",&n);
 for(i=1;i<=n;i++)
  {
scanf("%ld ",&a[i]);
d[i]=0;
}
for(i=1;i<n;i++)
  scanf("%ld %ld\n",&b[i],&c[i]);
 printf("%ld ",d[1]);
for(i=2;i<=n;i++)
{
  t=1;
  k=i;
  k1=i;
  nr=0;
 if(a[i]==0) printf("%ld ",a[i]);
   else
   {
  while(t)
{
  t1=1;
 for(j=1;j<n&&t&&t1;j++)
{
 if(c[j]==k)
{
 t1=0;
 nr++;
if(nr==a[k1])
{
if(a[b[j]]!=0) { k=b[j]; d[i]++; k1=k; nr=0; }
else
{
d[i]++;
t=0;
printf("%ld ",d[i]);
}
 }
else k=b[j];
  }
    }
}
 }
 }
 return 0;
}