Pagini recente » Diferente pentru problema/tequila intre reviziile 15 si 16 | Monitorul de evaluare | Cod sursa (job #111951) | Cod sursa (job #3335056) | Cod sursa (job #2501275)
#include <fstream>
using namespace std;
int v[22][250005];
int main()
{
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>v[0][i];
for(int mask=1;mask<=18;mask++)
for(int i=1;i<=n;i++)
v[mask][i]=v[mask-1][v[mask-1][i]];
for(int i=1;i<=m;i++)
{
int x,y,ans;
cin>>x>>y;
ans=x;
for(int p=0;(1<<p)<=y;p++)
{
if(y&(1<<p))
ans=v[p][x];
}
cout<<ans<<"\n";
}
return 0;
}