Pagini recente » Cod sursa (job #2316290) | Cod sursa (job #2890339) | Cod sursa (job #1724187) | Cod sursa (job #2122758) | Cod sursa (job #2948065)
#include <fstream>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int str[250005][20];
int n,m,i,j,max1;
int anc (int q,int p)
{
int i;
int next = 0;
for (i=max1;i>=0;i--)
if (p & (1<<i))
q = str[q][i];
return q;
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
fin >> n >> m;
for (i=1;i<=n;i++)
fin >> str[i][0];
for (j=1;1<<j<=n;j++)
{
max1 = j;
for (i=1;i<=n;i++)
str[i][j] = str[str[i][j-1]][j-1];
}
for (i=1;i<=m;i++)
{
int p,q;
fin >> q >> p;
fout << anc(q,p) << '\n';
}
return 0;
}