Cod sursa(job #546481)
| Utilizator | Data | 4 martie 2011 23:30:17 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define maxn 250005
int i,j,N,M,Q,P,k,x;
int A[21][maxn];
int main()
{
fin >> N >> M;
for(i=1;i<=N;i++)
fin >> A[0][i];
for(i=1;(1<<i)<=N;i++)
for(j=1;j<=N;j++)
A[i][j]=A[i-1][A[i-1][j]];
for(;M;M--)
{
fin >> Q >> P;
x=Q; k=0;
while(P)
{
if(P&1) x=A[k][x];
k++;
P>>=1;
}
fout << x << '\n';
}
}
