Pagini recente » Cod sursa (job #412668) | Cod sursa (job #2858212) | Cod sursa (job #2821695) | Cod sursa (job #444594) | Cod sursa (job #527229)
Cod sursa(job #527229)
// 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[19][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++)
if (mat[i - 1][j] == 0)
mat[i][j] = 0;
else
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;
}