Cod sursa(job #554019)

Utilizator rares192Preda Rares Mihai rares192 Data 14 martie 2011 15:10:10
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream> 
using namespace std; 

ifstream fin("stramosi.in"); 
ofstream fout("stramosi.out"); 

int n, m;
int v[20][250001], i, j;
int niv, w = 1, x, y; 

int main()
{ 
	
	fin >> n >> m; 
    for(i = 1;i <= n; ++i) 
		fin >> v[0][i]; 
  
	for(niv = 1; w ; niv++)
	{ 
		w=0; 
		for(i = 1;i <= n; i++)
		{ 
			v[niv][i] = v[niv-1][v[niv-1][i]]; 
			if(v[niv][i])
				w = 1; 
		}
	} 
    
	for(i = 1;i <= m;i++)
	{ 
       fin >> x >> y; 
	   niv = 1;
	   while( y )
	   { 
			if( y%2 == 1) 
			x=v[niv-1][x]; 
			niv++; 
			y /= 2; 
		} 
	   
	fout << x << '\n'; 
	} 

fin.close();
fout.close(); 
return 0; 
}