Cod sursa(job #234072)

Utilizator ooctavTuchila Octavian ooctav Data 19 decembrie 2008 22:06:05
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
 // stramosi.cpp : Defines the entry point for the console application.
//

#include <stdio.h>

int main()
{
	FILE *f1,*f2;
    f1=fopen("stramosi.in","r");
    f2=fopen("stramosi.out","w");
    int a,b,n,m,i;
    int e[250004];
	e[0]=0;
    fscanf(f1,"%d %d",&n,&m);
    for(i=1;i<=n;i++)
    {
                     fscanf(f1,"%d",&e[i]);
    }
    for(i=1;i<=m;i++)
    {
                     fscanf(f1,"%d %d",&a,&b);
                     switch(b&7)
					 {
					 case 1 :
						 {
							a=e[a];
							b--;
							break;
						 }
					 case 2 :
						 {
							a=e[e[a]];
							b-=2;
							break;
						 }
					 case 3 :
						 {
							a=e[e[e[a]]];
							b-=3;
							break;
						 }
					 case 4 :
						 {
							a=e[e[e[e[a]]]];
							b-=4;
							break;
						 }
					 case 5 :
						 {
							a=e[e[e[e[e[a]]]]];
							b-=5;
							break;
						 }
					 case 6 :
						 {
							a=e[e[e[e[e[e[a]]]]]];
							b-=6;
							break;
						 }
					 case 7 :
						 {
							a=e[e[e[e[e[e[e[a]]]]]]];
							b-=7;
							break;
						 }
					 }
					while(a && b)
					{
						a=e[e[e[e[e[e[e[e[a]]]]]]]];
							b-=8;
					}
                     fprintf(f2,"%d\n",a);
    }
    fclose(f1);
    fclose(f2);
	return 0;
}