Cod sursa(job #541226)

Utilizator n3msizN3msiz n3msiz Data 24 februarie 2011 21:56:37
Problema Cerere Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<vector>
#define nmax 100010
int n,m,i,z,j,x,y,v[nmax],nr;

int T[nmax];

int main(){
	FILE*f=fopen("cerere.in","r");
	FILE*g=fopen("cerere.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%d",&v[i]);
	}
	for(i=1;i<n;i++){
		fscanf(f,"%d %d",&x,&y);
		T[y]=x;
	}
	
	for(i=1;i<=n;i++){
		if(v[i]==0)
			fprintf(g,"0 ");
		else{
			z=v[i];
			m=i;
			nr=1;
			while(z){
				z--;
				m=T[m];
			}
			if(v[m]==0)
				fprintf(g,"1 ");
			if(v[m]>0){
				while(v[m]!=0){
					nr++;
					m=T[m];
				}
				fprintf(g,"%d ",nr);
			}
			
		}
	}
	
	fclose(f);
	fclose(g);
	return 0;
}