Cod sursa(job #2052478)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 30 octombrie 2017 17:37:11
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<vector>
#include<fstream>

using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int d[250002][32], v[250002];
int i, n, m, t, poz, nr;


int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
        fin>>d[i][0];
    for(i=2;i<=n;i++)
        v[i]=v[i/2]+1;
    for(t=1;t<=v[n];t++)
        for(i=1;i<=n;i++)
            d[i][t]=d[d[i][t-1]][t-1];
    for(i=1;i<=m;i++)
    {
        fin>>poz>>nr;
        while(nr)
        {
            poz=d[poz][v[nr]];
            nr-=(1<<v[nr]);
        }
        fout<<poz<<"\n";
    }
    return 0;
}