Cod sursa(job #733081)

Utilizator vunsdnavunsdna vunsdna Data 11 aprilie 2012 13:55:14
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
//1321:1344
//Timp: 23 min

#include <fstream>

#define logN 19
#define maxN 250001

using namespace std;

ifstream in;
ofstream out;

int dp[logN][maxN];

int main()
{
    int M,N;

    in.open("stramosi.in");
    in>>N>>M;
    for(int i=1;i<=N;++i) in>>dp[0][i];

    for(int i=1;i<logN;++i)
        for(int j=1;j<=N;++j)
            dp[i][j]=dp[i-1][dp[i-1][j]];

    out.open("stramosi.out");

    for(int P,Q;M--;)
    {
        in>>Q>>P;

        for(int b=0;P;P>>=1,++b)
            if(P&1) Q=dp[b][Q];

        out<<Q<<'\n';
    }

    in.close();
    out.close();

    return 0;
}