Pagini recente » Cod sursa (job #738246) | Cod sursa (job #1998536) | Cod sursa (job #3031006) | Cod sursa (job #337489) | Cod sursa (job #758749)
Cod sursa(job #758749)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int a[25][250100];
int querry(int membru, int ordn)
{
int i;
i=0;
while (ordn!=0&&membru!=0){
if (ordn%2==1)
membru=a[i][membru];
ordn=ordn/2;
i++;
}
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<=y;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;
}