Cod sursa(job #227488)

Utilizator hasegandaniHasegan Daniel hasegandani Data 4 decembrie 2008 19:49:01
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

#define nmax 250001

long s[nmax][32],m,n,i;
FILE *f=fopen("stramos.in","r"),*g=fopen("stramos.out","w");

int main()
{
    fscanf(f,"%ld%ld",&n,&m);
    for(i=1;i<=n;++i)
        fscanf(f,"%ld",&s[0][i]);
    int ok=1;
    long j=1;
    while (ok==1)
        {
        ok=0;
        for(int i=1;i<=n;++i)
            {
            s[j][i]=s[j-1][s[j-1][i]];  
			if (s[j][i]!=0)
				ok=1;
			}
		j++;
        }
    long a,b;
    for(j=1;j<=m;++j)
        {
            fscanf(f,"%ld%ld",&a,&b);
            int t=0;
            while (b!=0)
                {
                    if (b%2==1)
                        a=s[t][a];
                    b/=2;
                    t++;
				}
			fprintf(g,"%ld\n",a);

        }
    return 0;
}