Cod sursa(job #2052553)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 30 octombrie 2017 19:01:34
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#define DIM 250001
using namespace std;
int n,m,i,j,x,y,v[DIM],d[DIM][22],p[DIM];
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");


int main (){

    fin>>n>>m;
    for (i=1;i<=n;i++){
        fin>>x;
        d[i][0] = x;
    }
   // v[1] = 1;
    for (i=2;i<=n;i++)
        v[i] = v[i/2] + 1;
    p[0] = 1;
    for (i=1;i<=21;i++)
        p[i] = p[i-1]*2;

    for (i=1;i<=n;i++)
        for (j=1;j<=21;j++)
            d[i][j] = d[d[i][j-1]][j-1];

    for (;m--;){
        fin>>x>>y;
        for (;y && x != 0;){
           // if (x == 0 || !y)
              //  break;

            x = d[x][v[y]];
            y -= p[v[y]];
        }
        fout<<x<<"\n";
    }


    return 0;
}