Cod sursa(job #1080930)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 12 ianuarie 2014 23:34:53
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;
int n,m,i,k,q,p,lin,v[20][250001];

int main()
{
    ifstream f("stramosi.in");
    ofstream g("stramosi.out");

    f>>n>>m;
    for(i=1;i<=n;i++)
        f>>v[0][i];
    for(k=1;(1<<k)<=n;k++)
    {
        for(i=1;i<=n;i++) {
            v[k][i]=v[k-1][v[k-1][i]];
        }
        //cout<<endl;
    }

    for(i=0;i<m;i++){
        f>>q>>p;
        while(p!=0){
            lin=log2(p);
            q=v[lin][q];
            if(q==0)
                break;
            else
                p-=(1<<lin);
        }
        g<<q<<'\n';
    }
    return 0;
}