Cod sursa(job #1226789)
| Utilizator | Data | 7 septembrie 2014 16:24:46 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <cstdio>
using namespace std;
int N, M, i, j, p, P, Q, x, pw, T[18][250001];
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d", &N, &M);
for (i = 1; i <= N; ++i) scanf("%d", &T[0][i]);
for (j = 1; j <= 18; ++j)
for (i = 1; i <= N; ++i) T[j][i] = T[j - 1][T[j - 1][i]];
while (M--) {
scanf("%d %d", &Q, &P);
for (i = 18; i >= 0; --i)
if (P & (1 << i))
Q = T[i][Q];
printf("%d\n", Q);
}
return 0;
}
