Pagini recente » Cod sursa (job #2751595) | Cod sursa (job #448550) | Cod sursa (job #757042) | Cod sursa (job #1282858) | Cod sursa (job #1419196)
#include<fstream>
#include<iostream>
using namespace std;
#define MAX 250001
struct Node
{
Node *next;
int value;
}*A[250001];
int V[MAX][MAX/1000];
void add_to_node(int nr,int val)
{
if(val!=0)
{
Node *p=new Node;
p->value=val;
p->next=A[nr];
A[nr]=p;
}
}
int DFS(int s,int nr)
{
if(V[s][nr]!=0)
return V[s][nr];
if(s==0)
return 0;
if(nr==0)
return s;
else
{
if(nr==1)
{
if(A[s])
return A[s]->value;
else
return 0;
}
else
{
V[s][nr]= DFS(DFS(s,1),nr-1);
return V[s][nr];
}
}
}
int main()
{
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int N,M,v,q,p;
in>>N>>M;
for(int i=1;i<=N;i++)
{
in>>v;
add_to_node(i,v);
}
for(int i=1;i<=M;i++)
{
in>>q>>p;
out<<DFS(q,p)<<'\n';
}
return 0;
}