Pagini recente » Cod sursa (job #1105170) | Cod sursa (job #1297479) | Cod sursa (job #1599338) | Cod sursa (job #792973) | Cod sursa (job #758781)
Cod sursa(job #758781)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int a[25][250100];
inline int querry(int membru, int ordn)
{
int i;
/*i=0;
(while (ordn!=0&&membru!=0){
if (ordn&1)
membru=a[i][membru];
ordn>>=1;
i++;
}
*/
for (i=0;(1<<i)<=ordn;i++)
if (ordn&(1<<i))
membru=a[i][membru];
return membru;
}
int main(){
int n,m,i,j,x,y,l;
in>>n>>m;
//x=1; y=0;
/*while (x<m)
{
x=x*2;
y++;
}*/
//y++;
for (i=1;i<=n;i++)
in>>a[0][i];
for (i=1;i<=18;i++)
for (j=1;j<=n;j++)
a[i][j]=a[i-1][a[i-1][j]];
for (l=1;l<=m;l++)
{
in>>x>>y;
out<<querry(x,y)<<"\n";
}
return 0;
}