Cod sursa(job #1674638)

Utilizator teodoramusatoiuTeodora Musatoiu teodoramusatoiu Data 4 aprilie 2016 19:43:10
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("stramosi.in");
ofstream out("stramosi.out");

const int N_max=250005, L = 18;

int N,M;
int t[L][N_max];

int raspuns (int p, int q)
{
    int i=0;
    while(q!=0)
    {
        if(q%2!=0)
            p=t[i][p];
        i++;
        q/=2;
    }
    return p;
}

int main()
{
    int j;
    in>> N >> M;
    for(int i=1; i<=N; i++)
        in>>t[0][i];
    for(int i=1; i<L; i++)
        for(j=1; j<=N; j++)
            t[i][j] = t[i-1][ t[i-1][j] ];
    while(M--)
    {
        int p,q;
        in>>q>>p;
        p = raspuns(p,q);
        out<< t[p][q]<< '\n';
    }
    return 0;
}