Pagini recente » Cod sursa (job #366356) | Cod sursa (job #1648996) | Cod sursa (job #1096375) | Cod sursa (job #213416) | Cod sursa (job #245993)
Cod sursa(job #245993)
#include<fstream>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
long A[20][250001];
long n,m;
void read()
{
long log2,x,i,j;
f>>n>>m;
for(i=1;i<=n;i++) f>>A[0][i];
log2=0;
x=n;while(x) x/=2,log2++;
for(i=1;i<=log2;i++)
for(j=1;j<=n;j++)
A[i][j]=A[i-1][A[i-1][j]];
}
void solve(){
long p,q,niv;
for(int i=1;i<=m;i++){
f>>q>>p;
niv=0;long x;
while(p&&q)
{
if(p&1)q=A[niv][q];
p>>=1;niv++;
}
g<<q<<"\n";
}
}
int main()
{
read();
solve();
return 0;
}