Cod sursa(job #3284274)

Utilizator Jarvx404Bigu Cezar Jarvx404 Data 11 martie 2025 12:42:49
Problema Lowest Common Ancestor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <vector>
using namespace std;
int t[100001];
int n,m;
int v1[100001],v2[100001];
void path(int nod,int &k,int v[]){
    v[++k]=nod;
    if(t[nod]!=0)
        path(t[nod],k,v);
}
int main()
{
    cin>>n>>m;
    for(int i=2;i<=n;i++)
        cin>>t[i];
    for(int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        int k1=0,k2=0;
        path(x,k1,v1);
        path(y,k2,v2);
        int i1=k1,i2=k2;
        while(i1>=1&&i2>=1&&v1[i1]==v2[i2]){
            i1--;
            i2--;
        }
        //for(int j=k1;j>=1;j--)
        //  cout<<v1[j]<<' ';
        //cout<<'\n';
        //for(int j=k2;j>=1;j--)
        //  cout<<v2[j]<<' ';
        //cout<<'\n';**/
        cout<<v1[i1+1]<<'\n';
    }
    return 0;
}