Pagini recente » Cod sursa (job #1471185) | Cod sursa (job #2564347) | Cod sursa (job #2986809) | Cod sursa (job #1845462) | Cod sursa (job #2285941)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");
int v[100007];
int n;
int b[100007];
int k[100007];
int q[100007];
int c;
int f(int i){
if(k[i]==0){
return 0;
}
int i2=i;
for(int j=0;j<k[i];j++){
i2=v[i2];
}
b[i]=f(i2)+1;
return b[i];
}
int main()
{
fin>>n;
int x,y,ii;
for(int i=1;i<=n;i++){
fin>>k[i];
}
while(!fin.eof()){
fin>>x>>y;
v[y]=x;
}
for(int i=1;i<=n;i++){
if(!b[i]){
f(i);
}
}
for(int i=1;i<=n;i++){
fout<<b[i]<<" ";
}
return 0;
}