Cod sursa(job #395149)

Utilizator mihaionlyMihai Jiplea mihaionly Data 12 februarie 2010 11:21:23
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>
using namespace std;
#define doila(z) (1<<z)
#define nmax 3500010
int A[20][nmax];
int n,m,i,j,k,p,q;
int main()
 {
 ifstream f("stramosi.in");
 ofstream g("stramosi.out");
 f>>n>>m;
 for(i=1;i<=n;i++)
  f>>A[0][i];
 for(i=1;doila(i)<=n;i++)
  {
  for(j=1;j<=n;j++)
	A[i][j]=A[i-1][A[i-1][j]];
  k=i;
  }
 for(k=1;k<=m;++k)
  {
  f>>p>>q;
  while(p && q)
   for(i=k;i>=0;i--)
	if(doila(i)<=q && p && q)
	 {
	 p=A[i][p];
	 q-=doila(i);
	 }
  g<<p<<endl;
  }
 return 0;
 }