Cod sursa(job #2041208)

Utilizator icansmileSmileSmile icansmile Data 16 octombrie 2017 22:21:07
Problema Stramosi Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <iostream>
#include <vector>

int main() {
    int numberOfNodes;
    int numberOfQuestions;
    FILE *in = fopen("stramosi.in", "r");
    FILE *out = fopen("stramosi.out", "w");

    fscanf(in, "%d %d", &numberOfNodes, &numberOfQuestions);
    std::vector<int> parents(numberOfNodes + 1);
    parents[0] = 0;

    for (int i = 1; i <= numberOfNodes; i++) {
        int node;
        fscanf(in, "%d" , &node);
        parents[i] = node;
    }

    for (int i = 0; i < numberOfQuestions; i++) {
        int toFind;
        int count;
        fscanf(in, "%d %d", &toFind, &count);

        int k = 0;
        int parent = toFind;

        while (k < count) {
            parent = parents[parent];
            k++;
        }

        fprintf(out,"%d\n",parent);
    }

    fclose(in);
    fclose(out);
    return 0;
}