Cod sursa(job #1269298)

Utilizator danysilas23Silas Daniel danysilas23 Data 22 noiembrie 2014 02:16:02
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <cstdio>
using namespace std;
int v[19][250011];
int main()
{
    freopen("stramosi.in" , "r" , stdin);
    freopen("stramosi.out", "w" , stdout);
 
    int n , k , nn , i , j , a , b , m;
    scanf("%d %d\n", &n ,&k);
    nn = 18;
    while( !(n&(1<<nn)) ) --nn;
 
    for(i = 1;i <= n; ++i)
        scanf("%d ", &v[0][i]);
 
    for(i = 1;i <= nn; ++i )
       for(j=1; j<=n;++j)
            v[i][j] = v[i-1][ v[i-1][j] ];
 
    while( k-- ){
        scanf("%d %d\n",&a,&b);
        for(i=nn;i>=0;--i)
            if( b&(1<<i) )
                a = v[i][a];
        printf("%d\n",a);
    }
 
 
 
    return 0;
}