Cod sursa(job #978602)

Utilizator monica11Szekely Monica monica11 Data 29 iulie 2013 11:03:18
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int a[1001][250001];
int rezolva(int membru,int ordn)
{
    int i;
    i=0;
    while(ordn!=0&&membru!=0)
    {
        if(ordn%2==1)
            membru=a[i][membru];
        ordn=ordn/2;
        i++;
    }
    return membru;
}
int main()
{
    int n,m,i,j,x,y,l;
    f>>n>>m;
    x=1;
    y=0;
    while(x<m)
    {
        x=x*2;
        y++;
    }
    y++;
    for(i=1;i<=n;i++)
        f>>a[0][i];
    for(i=1;i<=y;i++)
        for(j=1;j<=n;j++)
            a[i][j]=a[i-1][a[i-1][j]];
    for(l=1;l<=m;l++)
    {
        f>>x>>y;
        g<<rezolva(x,y)<<"\n";
    }
    return 0;
}