Cod sursa(job #1518244)
Utilizator | Data | 5 noiembrie 2015 19:31:11 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include<iostream>
#include<fstream>
int D[19][250001], N, M, i, j, e;
int main()
{
std::ifstream f("stramosi.in");
std::ofstream g("stramosi.out");
f >> N >> M;
for (i = 1;i <= N;++i)
f >> D[0][i];
for (i = 1;i <= 18;++i)
for (j = 1;j <= N;++j)
D[i][j] = D[i - 1][D[i - 1][j]];
int Q, P, S;
for (i = 1;i <= M;++i)
{
f >> Q >> P;
e = Q;
for (j = 0;j <= 18;++j, P >>= 1)
if (P & 1)
e = D[j][e];
g << e << '\n';
}
return 0;
}