Cod sursa(job #1248546)

Utilizator danyro364Savu Ioan Daniel danyro364 Data 25 octombrie 2014 14:47:53
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
//#include <iostream>
#include <stdio.h>
#define nmax 250001
using namespace std;
FILE *f=fopen("stramosi.in","r"),*g=fopen("stramosi.out","w");
long a[18][nmax];
long n,m;
int main()
{
    long i,j,x,y,p,r,nr,x1,y1;
    fscanf(f,"%ld %ld",&n,&m);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%ld",&x);
        a[1][i]=x;
    }
    for(i=2;i<18;i++)
    {
        for(j=1;j<=n;j++)
        a[i][j]=a[i-1][a[i-1][j]];
    }
    for(i=1;i<=m;i++)
    {
        fscanf(f,"%ld %ld",&x,&y);
        while(y>0)
        {nr=1;
        p=1;
            while(p*2<=y)
        {
            p=p*2;
            nr++;
        }


        y=y-p;
        x=a[nr][x];
        }
        fprintf(g,"%ld\n",x);
    }
    fclose(f);
    fclose(g);
    return 0;
}