Pagini recente » Cod sursa (job #3161773) | Cod sursa (job #1964507) | Cod sursa (job #1174996) | Cod sursa (job #875187) | Cod sursa (job #639696)
Cod sursa(job #639696)
#include<cstdio>
#include<fstream>
using namespace std;
int n , m , p , q , a[18][250001];
ifstream fin("stramosi.in");
ofstream fout ("stramosi.out");
int stramos(int x , int lung)
{
int i = 0;
while ( lung != 0 )
{
if ( lung % 2 != 0 ) x = a[i][x];
lung /= 2;
++i;
}
return x;
}
int main()
{
fin>>n>>m;
for (int j=1 ; j<=n ; ++j )
fin>>a[0][j];
for (int i=1 ; (1<<i) <= n ; ++i )
{
for ( int j = 1 ; j <= n ; ++j )
a[i][j] = a[i-1][a[i-1][j]];
}
for (int i = 1 ; i <= m ; ++ i )
{
fin>>q>>p;
fout<<stramos(q,p)<<'\n';
}
fin.close();
fout.close();
return 0;
}