Cod sursa(job #2052468)

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

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


int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
        fin>>d[i][0];
    for(j=2;j<=n;j++)
        v[j]=v[j/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((1<<v[nr])<nr)
        {
            poz=d[poz][v[nr]];
            nr-=(1<<v[nr]);
        }
        fout<<d[poz][v[nr]]<<"\n";
    }
    fin.close();
    fout.close();
    return 0;
}