Cod sursa(job #602981)

Utilizator ion824Ion Ureche ion824 Data 13 iulie 2011 21:57:42
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
#define nmax 250001

int a[19][nmax],n,m;
char buf1[250001];

int main(void){
    int p,q,i,j,poz;
    ifstream fin("stramosi.in");
    ofstream fout("stramosi.out");
    fin.rdbuf()->pubsetbuf(buf1,sizeof(buf1));
    fin>>n>>m;
    for(i=1;i<=n;i++) fin>>a[0][i];
    for(i=1;i<=18;++i)
      for(j=1;j<=n;++j)
        a[i][j]=a[i-1][a[i-1][j]];
    poz=0;    
    while (m){          
          fin>>q>>p;
          poz=0;
          while(p>0){
                  if(p&1)  
                  q=a[poz][q];
              ++poz;
              p=p>>1;          
          }
          fout<<q<<"\n";
          --m;
          }               
    fin.close(); fout.close();  
  return 0;                   
}