Cod sursa(job #1045651)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 1 decembrie 2013 20:42:56
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int str[20][250001];
int main()
{
    ifstream f("stramosi.in");
    ofstream g("stramosi.out");
    int n,m,i,j,p,q,maxi;
    f>>n>>m;
    for(i=1;i<=n;i++)
      f>>str[0][i];
    i=1;
    while((1<<i)<=n)
      {
          for(j=1;j<=n;j++)
             str[i][j]=str[i-1][str[i-1][j]];
          i++;
      }
    for(i=1;i<=m;i++)
      {
          f>>p>>q;
          while(q>0)
           {
            maxi=log2(q);
            p=str[maxi][p];
            q=q-(1<<maxi);
           }
          g<<p<<'\n';
      }
    f.close();
    g.close();
    return 0;
}