Cod sursa(job #676144)

Utilizator octavianOctavian Crintea octavian Data 8 februarie 2012 18:49:46
Problema Stramosi Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fin = fopen("stramosi.in", "r"), *fout = fopen("stramosi.out", "w");
    int N, M, P, Q, k, i, *T;

    fscanf(fin, "%d%d", &N, &M);
    T = (int *) malloc((N + 1) * sizeof(int));// Vectorul de parinti
    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);
    }

    free(T);

    fclose(fin);
    fclose(fout);

    return 0;
}