Cod sursa(job #1798741)

Utilizator rares1012Rares Cautis rares1012 Data 5 noiembrie 2016 13:18:10
Problema Lowest Common Ancestor Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>

int st[100001][16];
int dist[100001];

int main()
{
    int n,k,i,j,a,b;
    FILE*fi,*fo;
    fi=fopen("lca.in","r");
    fo=fopen("lca.out","w");
    fscanf(fi,"%d%d",&n,&k);
    for(i=0;i<n;i++)
        {
            fscanf(fi,"%d",&st[i+2][0]);
        }
    for(i=2;i<=n;i++)
        {
            for(j=1;j<16;j++)
                st[i][j]=st[st[i][j-1]][j-1];
        }
    dist[1]=0;
    for(i=2;i<=n;i++)
        {
            dist[i]=dist[st[i][0]]+1;
        }
    for(i=0;i<k;i++)
        {
            fscanf(fi,"%d%d",&a,&b);
            if(dist[a]>dist[b]){
                p=16;
                while(p>0)
                    {
                        if()
                    }
            }
        }
    fclose(fi);
    fclose(fo);
    return 0;
}