Pagini recente » Cod sursa (job #1542294) | Cod sursa (job #72059) | Cod sursa (job #3247052) | Cod sursa (job #2816950) | Cod sursa (job #494821)
Cod sursa(job #494821)
#include <cstdio>
#include <vector>
using namespace std;
int data[250001];
int main ()
{
vector < vector <int> > v;
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", data+i+1);
v.push_back(vector<int>());
for(int i=1; i<=n; ++i)
{
v.push_back(vector<int>());
v[i].push_back(0);
value=i;
while(data[value])
{
v[i].push_back(data[value]);
value=data[value];
}
}
for(int i=0; i<m; ++i)
{
fscanf(in, "%d%d", &s1, &s2);
if(v[s1].size()>s2)
fprintf(out, "%d\n", v[s1][s2]);
else
fprintf(out, "0\n");
}
return 0;
}