Cod sursa(job #2052473)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 30 octombrie 2017 17:33:19
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <vector>

using namespace std;
int d[250001][18];
int v[250001];
int main()
{
    FILE *fin=fopen ("stramosi.in","r");
    FILE *fout=fopen ("stramosi.out","w");
    int n,m,i,k,a,b;
    fscanf (fin,"%d%d",&n,&m);
    for (i=2;i<=n;i++)
        v[i]=v[i/2]+1;
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&d[i][0]);
    k=1;
    while ((1<<k)<=n){
        for (i=1;i<=n;i++)
            d[i][k]=d[d[i][k-1]][k-1];
        k++;
    }
    for (;m;m--){
        fscanf (fin,"%d%d",&a,&b);
        while (b){
            a=d[a][v[b]];
            b=b-(1<<v[b]);
        }
        fprintf (fout,"%d\n",a);
    }
    return 0;
}