Cod sursa(job #1049871)

Utilizator Daniel3717Aleca Daniel Adrian Daniel3717 Data 7 decembrie 2013 21:29:54
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
int m[52][250005],nn,nq,i,p,q,j;
int stramos(int mem,int ord)
{
    for (int i=0;(1<<i)<=ord;i++)
        if ((ord&(1<<i))!=0)
            mem=m[i][mem];
    return mem;
}
int main(void)
{
    FILE * f;
    f=fopen("stramosi.in","r");
    ofstream g("stramosi.out");
    fscanf(f,"%d%d",&nn,&nq);
    for (i=1;i<=nn;i++)
        fscanf(f,"%d",&m[0][i]);
    for (j=1;j<=50;j++)
        for (i=1;i<=nn;i++)
            m[j][i]=m[j-1][m[j-1][i]];
    for (i=1;i<=nq;i++)
    {
        fscanf(f,"%d%d",&q,&p);
        g<<stramos(q,p)<<'\n';
    }
    return 0;
}