Cod sursa(job #1245178)

Utilizator cioionutFMI Ionut Ciocoiu cioionut Data 18 octombrie 2014 18:48:40
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
	ifstream f("cerere.in");
	ofstream g("cerere.out");
	int n,i,j;
	f >> n;
	int *a = new int[n+1], *t = new int[n+1],*d=new int[n+1];
	for (i = 1; i <= n; i++) {
		f >> a[i]; 
	}
	t[1] = 0;
	while (!f.eof()) {
		f >> i >> j;
		t[j] = i;
	}
	for (i = 1; i <= n;i++)
	if (a[i] == 0) d[i] = 0;
	else {
		d[i] = i;
		for (j = 1; j <= a[i]; j++) d[i] = t[d[i]];
	}

	for (i = 1; i <= n; i++) {
		int k = i, inc = 0;
		while (a[k] != 0) {
			k = d[k]; 
			inc++;
		}
		g << inc << " ";
	}

	//cin.get();
	f.close();
	g.close();
	return 0;
}