Cod sursa(job #978536)

Utilizator monica11Szekely Monica monica11 Data 28 iulie 2013 23:58:22
Problema Stramosi Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int a[1001][1001];
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;
}