Cod sursa(job #867670)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 29 ianuarie 2013 23:18:34
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

int v[18][250005];
int n,m;
ofstream fout("stramosi.out");

void solve(int q,int p)
{
    if(p==0)
        fout<<q<<'\n';
    else
    {
        int l=0;
        int i=1;
        while(i*2<p)
        {
            i*=2;
            l++;
        }
        solve(v[l][q],p-i);
    }
}
int main()
{
    ifstream fin("stramosi.in");
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        fin>>v[0][i];
    for(int i=1;i<=17;i++)
        for(int j=1;j<=n;j++)
            v[i][j]=v[i-1][v[i-1][j]];

    int x,y;
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y;
        solve(x,y);
    }
    return 0;
}