Cod sursa(job #227485)

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

#define nmax 250000

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

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

        }
    return 0;
}