Pagini recente » Cod sursa (job #116953) | Cod sursa (job #1376197) | Cod sursa (job #19432) | Cod sursa (job #938478) | Cod sursa (job #324258)
Cod sursa(job #324258)
#include<iostream>
using namespace std;
typedef struct str
{
int n;
str * par;
}str;
int main()
{
int n,m;
FILE *in = fopen("stramosi.in", "r");
FILE *out = fopen("stramosi.out", "w");
fscanf(in,"%d %d",&n,&m);
str * v = (str *)malloc( (n+1)*sizeof(str));
for(int i=1;i<=n;i++){
int k;
fscanf(in,"%d",&k);
//cout<<k<<" ";
if(!k) v[i].par = NULL;
else v[i].par = &v[k];
v[i].n = i;
}
for( int i = 1; i<= m; i++) {
int p;
int q;
fscanf(in,"%d %d",&q,&p);
str * pp = &v[q];
while(pp && p) {
pp = pp->par;
p--;
}
//cout<<p<<" ";
if(pp && p==0)fprintf(out,"%u\n",pp->n);
else fprintf(out,"0\n");
}
fclose(in);
fclose(out);
return 0;
}