Pagini recente » Cod sursa (job #117510) | Cod sursa (job #596291) | Cod sursa (job #2858694) | Cod sursa (job #2367932) | Cod sursa (job #2305863)
#include <iostream>
#include <fstream>
#include <vector>
//#define for(n) for(int i = 1 ; i <= n; i++)
using namespace std;
void init ( int n, bool *w)
{
for (int i = 1; i <= n; i++)
w[i] = false;
}
int main()
{
int n, m, i, x, y;
ifstream in ("lca.in");
ofstream out ( "lca.out" );
in >> n >> m;
vector <int> v (n+1);
for ( i = 2; i <= n ; i++)
in >> v[i];
v[1] = 0;
for( i = 1; i <= m; i++)
{
vector <bool> w (n+1, false);
in >> x >> y;
int j = x;
while ( j != 0){
w[j] = true;
j = v[j];
}
j = y;
while ( w[j] != true)
j = v[j];
out << j << "\n";
}
in.close();
out.close();
return 0;
}