Pagini recente » Cod sursa (job #2986922) | Cod sursa (job #1200607) | Cod sursa (job #2853454) | Cod sursa (job #400118) | Cod sursa (job #555209)
Cod sursa(job #555209)
#include<fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m;
int s[21][250001];
void Read();
void Din();
int main()
{
Read();
fin.close();
fout.close();
return 0;
}
void Read()
{
fin >> n >> m;
for( int i = 1; i <= n; ++i )
fin >> s[0][i];
Din();
/*
for( int i = 0; i <= 5; ++i )
{
for( int j = 1; j <= n; ++j )
fout << s[i][j] << ' ';
fout << '\n';
}
*/
int x, y;
int niv;
for( int i = 1; i <= m; ++i )
{
fin >> x >> y;
niv = 1;
while( y != 0 )
{
if( y % 2 == 1 )
x = s[niv-1][x];
y /= 2;
niv++;
}
fout << x << '\n';
}
}
void Din()
{
bool ok = 1;
int k = 0;
while( ok )
{
ok = 0;
k++;
for( int i = 1; i <= n; ++i )
{
int j = s[k-1][i];
s[k][i] = s[k-1][j];
if( s[k][i] != 0 )
ok = 1;
}
}
}