Cod sursa(job #352427)

Utilizator robigiirimias robert robigi Data 1 octombrie 2009 18:47:07
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define N 252144

using namespace std;

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


int n, m, p, q;

int v[18][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++;
	      ok=0;
	      for (int k=1; k<=n; k++)
	      {	  if (v[j-1][k])
	          {   cv=v[j-1][v[j-1][k]];
		          if (cv)
                  {   ok=1;
		              v[j][k]=cv;
             	  }
              }
	      }
     }
	
	
	int o, r;
    for (;m;--m)
    {   f >> q >> p;
        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;
}