Cod sursa(job #1758075)

Utilizator xSliveSergiu xSlive Data 16 septembrie 2016 14:41:56
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
int d[250001][20];

using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
//d[i][j]=al 2^j-lea stramos al lui i
int main(){
    int i,j,n,m,p,q;
    f >> n >> m;
    for(i=1;i <= n;i++)
        f>>d[i][0];
    for(i=1;i <= n;i++)
        for(j=1;(1<<j) <= n;j++)
            d[i][j] = d[d[i][j-1]][j-1];
    for(i=1;i <= m;i++){
        f >> q >> p;
        for(j=0; (1<<j) <= p && q > 0; j++)
            if(( (1<<j) & p))
                q = d[q][j];
        g << q << '\n';
    }
    f.close();
    g.close();
    return 0;
}