Cod sursa(job #1160013)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 30 martie 2014 01:08:09
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

int n,m,putere,x,y,i,j,s[20][250010],p[250010],b[20];

int main () {

    fin>>n>>m;
    x=1;
    for (i=0;i<=18;i++) {
        b[i]=x;
        x*=2;
    }
    x=2;
    for (i=0;i<=n;i++) {
        if (i==x) {
            putere++;
            x*=2;
        }
        p[i]=putere;
    }
    for (i=1;i<=n;i++)
        fin>>s[0][i];

    x=2;

    for (i=1;x<=n;i++) {
        for (j=1;j<=n;j++)
            s[i][j]=s[i-1][s[i-1][j]];
        x*=2;
    }

    while (m--) {
        fin>>x>>y;
        while (y!=0 ) {
            x=s[p[y]][x];
            y-=b[p[y]];
        }
        fout<<x<<"\n";
    }


    return 0;
}