Cod sursa(job #1014364)

Utilizator bianca1501gavrilescu bianca bianca1501 Data 22 octombrie 2013 16:16:05
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#define MAXN 250001
#define MAXLOGN 18 
int a[MAXLOGN][MAXN];
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[0][i]);
}
for (int i=1;i<MAXLOGN;i++)
	for (int j=1;j<=n;j++) a[i][j] = a[i-1][a[i-1][j]];
for (int i=0;i<m;i++)
{ fscanf(fin, "%d %d", &q, &p);
for (int k=17;k>=0 && q>0;k--)
	if (p & (1<<k))
		q = a[k][q];
	fprintf(fout,"%d\n", q);
	}
fclose(fin);
fclose(fout);
return 0;
}