Cod sursa(job #494823)
| Utilizator | Data | 23 octombrie 2010 01:04:54 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <cstdio>
using namespace std;
int v[20][250001];
int main ()
{
FILE *in=fopen("stramosi.in", "r"), *out=fopen("stramosi.out", "w");
int n, m, value, s1, s2;
fscanf(in, "%d%d", &n, &m);
for(int i=0; i<n; ++i)
fscanf(in, "%d", &v[0][i+1]);
for(int i=1; i<=n; ++i)
{
value=i;
int j=1;
while(v[0][value])
{
value=v[0][value];
v[j++][i]=value;
}
}
for(int i=0; i<m; ++i)
{
fscanf(in, "%d%d", &s1, &s2);
fprintf(out, "%d\n", v[s2][s1]);
}
return 0;
}
