Pagini recente » Cod sursa (job #3293750) | Cod sursa (job #3296466) | Cod sursa (job #1767772) | Cod sursa (job #2621067) | Cod sursa (job #419936)
Cod sursa(job #419936)
#include <fstream>
using namespace std;
#define NMAX 250002
int s[20][NMAX];
int main()
{
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,i,test,p,q,k;
fin>>n>>m;
for (i=1;i<=n;++i) fin>>s[0][i];
for (k=1;(1<<k)<=n;++k)
for (i=1;i<=n;++i)
s[k][i]=s[k-1][s[k-1][i]];
for (test=0;test<m;++test)
{
fin>>p>>q;
k=0;
while (q>=(1<<k)) ++k;
--k;
while (k>=0)
{
if ((1<<k)&q) p=s[k][p];
--k;
}
fout<<p<<"\n";
}
fin.close(); fout.close();
return 0;
}