Pagini recente » Cod sursa (job #2830004) | Cod sursa (job #609936) | Cod sursa (job #2649619) | Cod sursa (job #2029298) | Cod sursa (job #2486248)
#include <iostream>
#include <fstream>
using namespace std;
int v1[100005];
int v2[100005];
int v[100005];
ifstream fin("lca.in");
ofstream fout("lca.out");
int main()
{
int i,n,m,ct1,ct2,j1,j2,x,y;
fin>>n>>m;
for(i=2;i<=n;i++)
fin>>v[i];
for(i=1;i<=m;i++)
{
fin>>x>>y;
ct1=1;
ct2=1;
v1[ct1]=x;
v2[ct2]=y;
while(v1[ct1]!=1)
{
ct1++;
v1[ct1]=v[ v1[ct1-1] ];
}
while(v2[ct2]!=1)
{
ct2++;
v2[ct2]=v[ v2[ct2-1] ];
}
while(v1[ct1]==v2[ct2]&&ct1>=1&&ct2>=1)
{
ct1--;
ct2--;
}
fout<<v1[ct1+1]<<"\n";
}
return 0;
}