Pagini recente » Cod sursa (job #711158) | Cod sursa (job #3271874) | Cod sursa (job #674637) | Cod sursa (job #2334342) | Cod sursa (job #928217)
Cod sursa(job #928217)
#include <stdio.h>
#define INFILE "stramosi.in"
#define OUTFILE "stramosi.out"
#define MAX 250001
typedef struct node {
long int info;
node * next;
} NODE, * PNODE;
PNODE graph[MAX];
long int n, p;
void Add(long int i, long int j);
long int DepthFirstSearch(long int vertex);
int main()
{
long int q = 0, i = 0, m = 0;
freopen(INFILE,"r",stdin);
freopen(OUTFILE,"w",stdout);
scanf("%ld %ld",&n,&m);
for ( i = 1; i <= n; i++ )
{
scanf("%ld",&p);
Add(i, p);
}
while ( m )
{
scanf("%ld %ld",&q,&p);
printf("%ld\n",DepthFirstSearch(q));
m--;
}
return 0;
}
void Add(long int i, long int j)
{
PNODE x = new NODE;
x->info = j;
x->next = graph[i];
graph[i] = x;
}
long int DepthFirstSearch(long int vertex)
{
PNODE x = NULL;
if ( p && graph[vertex] ){ p--; return DepthFirstSearch(graph[vertex]->info);}
return vertex;
}