Cod sursa(job #1674648)

Utilizator FeriCsiki Francisc Alexandru Feri Data 4 aprilie 2016 19:47:09
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("stramosi.in");
ofstream out("stramosi.out");

const int N=250001,L=18;

int t[L][N],v[N];

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 i,j,n,m,x,y;
    in>>n>>m;
    for(i=1; i<=n; i++)
    {
        in>>t[0][i];
    }
    for(i=1; i<L; i++)
    {
        for(j=1; j<=n; j++)
        {
            t[i][j]=t[i-1][t[i-1][j]];
        }
    }
    for(i=1; i<=m; i++)
    {
        in>>x>>y;
        out<<raspuns(x,y)<<'\n';
    }
    return 0;
}