Cod sursa(job #245994)

Utilizator mihai.cuculiciCuculici Mihail mihai.cuculici Data 19 ianuarie 2009 17:22:00
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<fstream>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
long A[20][250001];
long n,m;

void read()
{
 long log2,x,i,j;
 f>>n>>m;
 for(i=1;i<=n;i++) f>>A[0][i];
 log2=0;
 x=n;while(x) x/=2,log2++;
 for(i=1;i<=log2;i++)
	for(j=1;j<=n;j++)
       A[i][j]=A[i-1][A[i-1][j]];
}

void solve(){
 long p,q,niv;
 for(int i=1;i<=m;i++){
  f>>q>>p;
  niv=0;
  while(p&&q)
  {
    if(p&1)q=A[niv][q];
    p>>=1;niv++;
  }
  g<<q<<"\n";
 }
}

int main()
{
  read();
  solve();
  return 0;
}