Pagini recente » Cod sursa (job #329091) | Cod sursa (job #1683126) | Cod sursa (job #1433080) | Cod sursa (job #1523110) | Cod sursa (job #2076682)
#include <fstream>
using namespace std;
ifstream F("cerere.in");
ofstream G("cerere.out");
int n, x, y, v[ 100005 ], ord[ 100005 ], t[ 100005 ], k;
int main()
{
F >> n;
for( int i = 1; i <= n; ++ i ) F >> v[ i ];
for( int i = 1; i < n; ++ i )
F >> x >> y, t[ y ] = x;
for( int i = 1; i <= n; ++ i )
{
if( !v[ i ] )
{
ord[ i ] = 0;
continue;
}
k = 0; x = i;
while( k < v[ i ] )
{
x = t[ x ];
k ++;
}
if( !v[ x ] )
{
ord[ i ] = 1;
continue;
}
ord[ i ] = ord[ x ] + 1;
}
for( int i = 1; i <= n; ++ i ) G << ord[ i ] << " ";
return 0;
}