Pagini recente » Cod sursa (job #246778) | Cod sursa (job #110260) | Cod sursa (job #311775) | Cod sursa (job #387195) | Cod sursa (job #527221)
Cod sursa(job #527221)
// p010.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include "stdio.h"
int main()
{
FILE *f = fopen("stramosi.in", "rt");
FILE *fres = fopen("stramosi.out", "wt");
if (!f || !fres)
return 0;
int n = 0, m = 0;
fscanf(f, "%d %d\n", &n, &m);
//int a[250001] = { 0 };
int mat[18][250001] = { 0 };
int i = 0, j = 0;
for (i = 1; i <= n; i++)
fscanf(f, "%d", &mat[0][i]);
for (i = 1; i < 18; i++)
{
for (j = 1; j <= n; j++)
mat[i][j] = mat[i - 1][mat[i - 1][j]];
}
int q = 0, p = 0;
for (i = 0; i < m; i++)
{
fscanf(f, "%d %d", &q, &p);
// al p-lea stramos al lui q
while (p > 0 && q != 0)
{
int pow = 1, c = 0;
while (pow * 2 <= p)
{
pow *= 2;
c++;
}
q = mat[c][q];
p -= pow;
}
fprintf(fres, "%d\n", q);
}
fclose(fres);
fclose(f);
return 0;
}