Pagini recente » Cod sursa (job #28534) | Cod sursa (job #356157) | Cod sursa (job #673615) | Cod sursa (job #571554) | Cod sursa (job #574291)
Cod sursa(job #574291)
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
const int nmax = 250250;
int N, M;
int T[30][nmax];
vector <int> G[nmax];
void read()
{
ifstream in("stramosi.in");
in >> N >> M;
int i, k;
for(i = 1; i <= N; i++)
{
in >> T[0][i];
G[ T[0][i] ]. pb( i );
}
for(k = 1; (1 << k) <= N; k++)
for(i = 1; i <= N; i++)
T[k][i] = T[k - 1][ T[k - 1][i] ];
int Q, P;
ofstream out("stramosi.out");
for(i = 1; i <= M; i++)
{
in>> Q >> P;
k = 0;
while(P)
{
if(P & 1)
Q = T[k][Q];
k++;
P >>= 1;
}
out << Q << "\n";
}
}
int main()
{
read();
return 0;
}