Pagini recente » Cod sursa (job #160228) | Cod sursa (job #1272187) | Cod sursa (job #1275356) | Cod sursa (job #670263) | Cod sursa (job #81661)
Cod sursa(job #81661)
#include <stdio.h>
#include <vector>
#define infile "stramosi.in"
#define outfile "stramosi.out"
using namespace std;
vector < vector <long> >v;
vector <long>c;
long n, m, i, temp, q, p;
FILE *fin=fopen(infile, "r"), *fout=fopen(outfile, "w");
int main()
{
fscanf(fin, "%ld %ld\n", &n, &m);
for (i=1; i<=n; i++)
{
fscanf(fin, "%ld ", &temp);
c.push_back(temp);
}
for (i=0; i<n; i++)
{
vector <long>aux;
temp=i;
aux.push_back(0);
while (c[temp])
{
aux.push_back(c[temp]);
temp=c[temp]-1;
aux[0]++;
}
v.push_back(aux);
}
for (i=1; i<=m; i++)
{
fscanf(fin, "%ld %ld\n", &q, &p);
if (v[q-1][0]>=p) fprintf(fout, "%ld\n", v[q-1][p]);
else fprintf(fout, "0\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}