Pagini recente » Cod sursa (job #31256) | Cod sursa (job #2362632) | Cod sursa (job #2966075) | Cod sursa (job #320499) | Cod sursa (job #1245178)
#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;
}