Cod sursa(job #38322)

Utilizator Bluedrop_demonPandia Gheorghe Bluedrop_demon Data 25 martie 2007 17:29:46
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
// Problema cerere

#include <stdio.h>
#define MAX       100001

long t[MAX];
long K[MAX];
long n;

int main()
{
    freopen( "cerere.in", "rt", stdin );
             scanf( "%ld", &n );
             long A, B, i, s, k, p;
             for( i=1; i<=n; i++ ) scanf( "%ld", &K[i] );
             for( i=1; i<=n; i++ )
                  {
                       scanf( "%ld %ld", &A, &B );
                       t[B] = A;
                  }
    
    freopen( "cerere.out", "wt", stdout );
        fclose( stdin );
        for( i=1; i<=n; i++ )
             {
                  s = 0;
                  p = i;
                  while( K[p] != 0)
                         {
                              k = K[p];                
                              s += 1;
                              while( k > 0 )
                                     {
                                         p = t[p];
                                         k--;
                                     }
                         }
                  
                  printf("%ld ", s );
             }
             printf( "\n" );
    fclose( stdout );
    return 0;
}