Cod sursa(job #370383)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 30 noiembrie 2009 22:50:39
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#define FIN "stramosi.in"
#define FOUT "stramosi.out"
#define NMAX 250003
#define SMAX 21
using namespace std;
int cn,i,j,p,q,s[SMAX][NMAX],m,n,k;
int main()
{freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) {scanf("%d",&s[0][i]);}
cn=n;
for(k=0;cn;k++) cn>>=1;

for(i=1;i<=k;i++)
 for(j=1;j<=n;j++)
  if(s[i-1][j]) s[i][j]=s[i-1][s[i-1][j]];
while (m--)
	{
		scanf("%d %d",&q,&p);
		j=0;
	while(p && q)
	 {if(p%2)
	  q=s[j][q];
   j++;
    p=p/2;
            
            }
    printf("%d\n",q);        
	}


    return 0;}