Pagini recente » Istoria paginii runda/easylasm | Istoria paginii runda/tema_1_10f | Clasament euclid_2 | Ceva interesant de văzut?:) | Cod sursa (job #2706687)
#include <bits/stdc++.h>
#define rpd ios_base :: sync_with_stdio(0); cin.tie(0);
#define ll long long
#define fs first
#define sc second
#define pb push_back
#define mod 666013
#define NMAX 100000 + 100
using namespace std;
ofstream out( "stramosi.out");
ifstream in( "stramosi.in" );
int dp[25][250005];
main()
{
rpd;
int m,n;
in>>n>>m;
for(int i=1;i<=n;i++)
{
in>>dp[0][i];
}
for(int i=1;i<=18;i++)
{
for(int j=1;j<=n;j++)
dp[i][j]=dp[i-1][dp[i-1][j]];
}
while(m--)
{
int a,b;
in>>a>>b;
for(int i=0;i<=18;i++)
if((1<<i)&b)
a=dp[i][a];
//if(a==0)a=-1;
out<<a<<'\n';
}
}