Cod sursa(job #1368998)

Utilizator tweetyMarinescu Ion tweety Data 2 martie 2015 21:03:32
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;

struct Nod
{
    int parent;
    int value;
};

int main()
{
    ifstream in("stramosi.in");
    ofstream out("stramosi.out");
    int N;
    int M;
    int i;
    int ancestor;
    int nod, rang;
    Nod** Graph;

    in >> N >> M;
    Graph = new Nod*[N + 1];
    Graph[0] = NULL;

    for (i = 1; i <= N; ++i)
    {
        in >> ancestor;

        Graph[i] = new Nod;
        Graph[i]->value = i;
        Graph[i]->parent = ancestor;
    }

    for (i = 1; i <= M; ++i)
    {
        in >> nod >> rang;

        int p;
        Nod* traveller = Graph[nod];

        for (p = 0; p != rang && traveller != NULL; ++p)
            traveller = Graph[traveller->parent];

        if (traveller == NULL)
            out << "0\n";
        else
            out << traveller->value << "\n";
    }

    for (i = 0; i <= N; ++i)
        delete Graph[i];
    delete[] Graph;

    return 0;
}