Cod sursa(job #676146)
| Utilizator | Data | 8 februarie 2012 18:52:39 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 70 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <stdio.h>
#include <stdlib.h>
#define MAXN 250001
int main() {
FILE *fin = fopen("stramosi.in", "r"), *fout = fopen("stramosi.out", "w");
int N, M, P, Q, k, i, T[MAXN];
fscanf(fin, "%d%d", &N, &M);
for (i = 1; i <= N; i++) {
fscanf(fin, "%d", &T[i]);
}
for (i = 0; i < M; i++) {
fscanf(fin, "%d%d", &Q, &P);
k = 0;
while(T[Q] && k < P) {
Q = T[Q];
k++;
}
fprintf(fout, "%d\n", k < P ? 0 : Q);
}
fclose(fin);
fclose(fout);
return 0;
}
