Pagini recente » Cod sursa (job #3140647) | Cod sursa (job #2661517) | Cod sursa (job #2536162) | Cod sursa (job #318005) | Cod sursa (job #984092)
Cod sursa(job #984092)
#include <fstream>
#include <cmath>
#define maxn 250001
#define maxlogn 18
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int t[maxlogn][maxn],logs[maxn];
int n,m,Q,P;
int main()
{
fin>>n>>m;
for (int i=1; i<=n; ++i) fin>>t[0][i];
logs[1]=0;
for (int i=2; i<=n; ++i) logs[i] = logs[i>>1]+1;
for (int j=1; j<=logs[n]; ++j)
for (int i=1; i<=n; ++i)
t[j][i] = t[j-1][t[j-1][i]];
for (int i=1; i<=m; ++i)
{
fin>>Q>>P;
for (int j=logs[P]; j>=0; --j)
if ((1<<j)&P) Q = t[j][Q];
fout<<Q<<"\n";
}
}