Cod sursa(job #834094)

Utilizator ard_procesoareLupicu ard_procesoare Data 13 decembrie 2012 18:56:36
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
//#include <vector>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define NMAX 250002
int vd[21][NMAX],n,m;
void read_dm()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>vd[0][i];
    }
}
void init()
{
    int i,j;
    for(i=1;i<20;i++)
        for(j=1;j<=n;j++)
            vd[i][j]=vd[i-1][vd[i-1][j]];
}
void solve()
{
    int a,bun,p,rez,f,i;
    for(i=0;i<m;i++)
    {
        fin>>a>>bun;
      //  rez=a;
        while(bun)
        {
            p=1;
            f=0;
            while(p*2<=bun)
            {
                p=p*2;
                f++;
            }
            a=vd[f][a];
            bun=bun-p;
        }
        fout<<a<<"\n";
    }
}
int main()
{
    read_dm();
    init();
    solve();
   // for(short int i=1;i<=n;i++) fout<<vd[0][i];

}