Pagini recente » Cod sursa (job #1407973) | Cod sursa (job #1921183) | Cod sursa (job #2336017) | Cod sursa (job #5474) | Cod sursa (job #591968)
Cod sursa(job #591968)
#include <fstream.h>
#include <iomanip.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, long int number);
int main()
{
long int q = 0, i = 0, m = 0;
ifstream fin(INFILE);
ofstream fout(OUTFILE);
fin >> n >> m;
for ( i = 1; i <= n; i++ )
{
fin >> p;
Add(i, p);
}
while ( m )
{
fin >> q >> p;
fout << DepthFirstSearch(q, 0) << endl;
m--;
}
fin.close();
fout.close();
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, long int number)
{
PNODE x = NULL;
if ( number != p && graph[vertex] ) return DepthFirstSearch(graph[vertex]->info, number + 1);
return vertex;
}