Pagini recente » Cod sursa (job #646481) | Cod sursa (job #1068983) | Cod sursa (job #225096) | Cod sursa (job #3170653) | Cod sursa (job #245994)
Cod sursa(job #245994)
#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;
while(p&&q)
{
if(p&1)q=A[niv][q];
p>>=1;niv++;
}
g<<q<<"\n";
}
}
int main()
{
read();
solve();
return 0;
}