Cod sursa(job #352435)

Utilizator robigiirimias robert robigi Data 1 octombrie 2009 18:53:39
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define N 252144

using namespace std;

ifstream f ("stramosi.in");
ofstream g ("stramosi.out");


int n, m, p, q;

int v[20][N];

int main()
{   
    f >> n >> m;
    for (int i=1; i<=n; ++i)
	f >> v[0][i];
	
	int ok=1, j=0, cv=0;
	
	while (ok && j<19)
	{     j++;
	      ok=0;
	      for (int k=1; k<=n; k++)
	      {	  cv=v[j-1][v[j-1][k]];
              v[j][k]=cv;
              if (cv)
                 ok=1;
	      }
     }
	
	
	int o, r;
    for (;m;--m)
    {   f >> p >> q;
        o=0;
        while (q>0)
        {      if (q%2==1)
                  p=v[o][p];
               o++;
               q/=2;
        }
        g << p << "\n";
    }
    f.close();
    g.close();
    return 0;
}