Cod sursa(job #502456)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 19 noiembrie 2010 16:27:13
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;

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

int N,M;
int Tt[20][250002];//T[k][i] = al 2^k tata al lui i

int Stramos(int a,int k)
{
    if(k==0)
        return a;
    else
    {
        int p = 18;
        while((1<<p)>k)p--;
        k&=((1<<p)-1);
        Stramos(Tt[p][a],k);
    }
}

int main()
{
    int i,k;
    in>>N>>M;
    for(i=1;i<=N;i++)in>>Tt[0][i];
    for(k=1;k<=18;k++)
    {
        for(i=1;i<=N;i++)
        {
            Tt[k][i] = Tt[k-1][Tt[0][i]];
        }
    }
    while(M--)
    {
        in>>k>>i;
        out<<Stramos(k,i)<<'\n';
    }
    return 0;
}