Cod sursa(job #1253285)

Utilizator testtVasilica Ionica testt Data 1 noiembrie 2014 00:17:58
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
 
/*
d[i][j] = al 2^i-lea stramosi a lui j
*/
const int nmax = 250006;
int n, d[20][nmax], m, p, q;
 
int main(){
    int player_unu=0;
 
    in>>n>>m;
    for(int i = 1; i<=n; i++)
        in>>d[0][i];
 
    for(int i = 1; i<=18; i++)
        for(int j = 1; j<=n; j++)
            d[i][j] = d[i - 1][d[i - 1][j]];
 
    for(int shp = 0; shp<m; shp++)
    {
        in>>q>>p;
 
        for(int i = 0; p!=0; p/=2, i++)
            if(p%2==1)
                q = d[i][q];
 
        out<<q<<'\n';
    }
 
    return player_unu;
}