Cod sursa(job #2852904)

Utilizator PescaPescariu Matei Alexandru Pesca Data 19 februarie 2022 18:03:03
Problema Arbori de intervale Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;
struct arbore
{
    int st,dr,val;
    arbore *vf,*f1,*f2;
}*VF;
int n;
arbore *gen(int s,int d,arbore *va)
{
    if(s==d)
    {
        arbore *nou=new arbore;
        nou->st=nou->dr=s;
        nou->f1=nou->f2=NULL;
        nou->vf=va;
        cin>>nou->val;
        return nou;
    }
    arbore *nou=new arbore;
    nou->vf=va;
    nou->st=s;
    nou->dr=d;
    int m=(s+d)/2;
    nou->f1=gen(s,m,nou);
    nou->f2=gen(m+1,d,nou);
    nou->val=max(nou->f1->val,nou->f2->val);
    return nou;
}
void creare()
{
    VF=new arbore;
    VF->st=1;
    VF->dr=n;
    VF->vf=NULL;
    int s=1,d=n,m=(s+d)/2;
    VF->f1=gen(1,m,VF);
    VF->f2=gen(m+1,d,VF);
    VF->val=max(VF->f1->val,VF->f2->val);
}
int main()
{
    cin>>n;
    creare();
}