Cod sursa(job #795659)

Utilizator ioanabIoana Bica ioanab Data 9 octombrie 2012 11:21:03
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

const int N=250005, lg=19;
int t[25][N];

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

int bs(int x, int y)
{
    int i;
    for(i=lg-1;i>=0;i--)
        if(x>=(1<<i))
        {
            x-=(1<<i);
            y=t[i][y];
        }
    return y;
}

int main()
{
    int n,m,x,y;
    in>>n>>m;
    for(int i=1;i<=n;i++)
        in>>t[0][i];

    for(int i=1;i<lg;i++)
        for(int j=1;j<=n;j++)
            t[i][j]=t[i-1][t[i-1][j]];

    while(m--)
    {
        in>>y>>x;
        out<<bs(x,y)<<"\n";
    }
}