Cod sursa(job #374712)

Utilizator DranaXumAlexandru Dumitru Paunoiu DranaXum Data 17 decembrie 2009 23:32:27
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<iostream>
#include<list>
#define NMAX 250001

using namespace std;

FILE *fin=freopen("stramosi.in","r",stdin);
FILE *fout=freopen("stramosi.out","w",stdout);

int n,m;
list<int> l1[NMAX];

int main()
{
    int i,x,p,q;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        cin>>x;
        if(x)
            {l1[i].push_back(x);}
    }
   for(i=1;i<=m;i++)
    {
        cin>>q>>p;
        int k=0;
        int nod=q;
        if(l1[nod].empty()) nod=0;
        while(k<p && !l1[nod].empty())
        {
            nod=l1[nod].front();
            k++;
            if(l1[nod].empty() && k<p) nod=0;
        }
        cout<<nod<<"\n";
    }
    return 0;
}