Cod sursa(job #1649182)

Utilizator jordasIordache Andrei Alexandru jordas Data 11 martie 2016 12:45:42
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#define nMax 250001
#include <fstream>

using namespace std;

 ifstream x ("stramosi.in");
 ofstream y ("stramosi.out");

 struct trick
 {
     int target;
     trick *next;
 };

 int n,m;

 trick *node[nMax],*temp;

 void add_path(int a, int b)
 {
     node[a]=new trick();

     node[a]->target=b;
     node[a]->next=node[b];
 }

 int stramos(int q, int p)
 {
     if(p==0)
        return node[q]->target;

     if(node[q]->target)
        return stramos(node[q]->target,p-1);

     return 0;
 }

int main()
{
    int i;

    x>>n>>m;

    int a;

    for(i=1;i<=n;i++)
    {
        x>>a;

        add_path(i,a);
    }
/*
    temp=new trick();

    temp=node[12];

    while(temp)
    {
        y<<temp->target<<' ';

        temp=temp->next;
    }
    y<<'\n';
*/
    int q,p;

    for(i=0;i<m;i++)
    {
        x>>q>>p;

        y<<stramos(q,p-1);
        y<<'\n';
    }

    return 0;
}