Pagini recente » Cod sursa (job #2468836) | Cod sursa (job #854252) | Cod sursa (job #1024079) | Cod sursa (job #696372) | Cod sursa (job #758745)
Cod sursa(job #758745)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int a[20][250000];
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;
}