Pagini recente » Cod sursa (job #3039389) | Cod sursa (job #770369) | Cod sursa (job #1935404) | Cod sursa (job #2702919) | Cod sursa (job #992957)
Cod sursa(job #992957)
#define _CRT_SECURE_NO_DEPRECATE
#include <fstream>
#define MAXN 250001
#define MAXLOGN 18
int a[MAXN][MAXLOGN];
int e[MAXLOGN];
int main(){
FILE *fin, *fout;
fin = fopen("stramosi.in", "r");
fout = fopen("stramosi.out", "w");
int n,m;
fscanf(fin, "%d %d", &n, &m);
int p,q;
for (int i=1;i<=n;i++){
fscanf(fin, "%d", &a[i][0]);
}
for (int k=0;k<=MAXLOGN;k++)
e[k]=1<<k;
for (int j=1;j<MAXLOGN;j++)
for (int i=1;i<=n;i++)
a[i][j] = a[a[i][j-1]][j-1];
for (int i=0;i<m;i++){
fscanf(fin, "%d %d", &q, &p);
for (int k=17;k>=0 && q>0;k--)
if (p & e[k])
q = a[q][k];
fprintf(fout,"%d\n", q);
}
fclose(fin);
fclose(fout);
return 0;
}