Pagini recente » Cod sursa (job #440023) | Cod sursa (job #2633997) | Cod sursa (job #1434629) | Cod sursa (job #2402857) | Cod sursa (job #1724199)
#include <cstdio>
#define MAXN 250000
#define MAXLOG 18
using namespace std;
int str[MAXLOG][MAXN+1];
int main()
{
FILE *fin, *fout;
int q, p, n, m, i, p2;
fin=fopen("stramosi.in", "r");
fscanf(fin, "%d%d", &n, &m);
for(i=1; i<=n; i++)
fscanf(fin, "%d", &str[0][i]);
for(p2=1; (1<<p2)<=n; p2++)
for(i=1; i<=n; i++)
str[p2][i]=str[p2-1][str[p2-1][i]];
fout=fopen("stramosi.out", "w");
for(i=0; i<m; i++){
fscanf(fin, "%d%d", &q, &p);
p2=0;
while((1<<p2)<=p && q>0){
if((1<<p2)&p)
q=str[p2][q];
++p2;
}
fprintf(fout, "%d\n", q);
}
fclose(fin);
fclose(fout);
return 0;
}