Pagini recente » Atasamentele paginii Profil Ene Orlando-Georgian | Cod sursa (job #1127613) | Cod sursa (job #284772) | Cod sursa (job #2711256) | Cod sursa (job #733085)
Cod sursa(job #733085)
//1321:1344
//Timp: 23 min
#include <fstream>
#define logN 19
#define maxN 250001
using namespace std;
ifstream in;
ofstream out;
int dp[logN][maxN];
int main()
{
int M,N;
in.open("stramosi.in");
in>>N>>M;
for(int i=1;i<=N;++i) in>>dp[0][i];
for(int i=1;i<logN;++i)
for(int j=1;j<=N;++j)
dp[i][j]=dp[i-1][dp[i-1][j]];
out.open("stramosi.out");
int P,Q,b;
while(M--)
{
in>>Q>>P;
b=0;
while(P)
{
if(P&1) Q=dp[b][Q];
if(!Q) break;
++b;
P>>=1;
}
out<<Q<<'\n';
}
in.close();
out.close();
return 0;
}