Cod sursa(job #1029366)

Utilizator raduiulianRadu Iulian Mihai raduiulian Data 15 noiembrie 2013 14:18:31
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <cstdio>

using namespace std;

void adaugare(int nod,int st,int dr,int poz,int val)
{
    if(st==dr)
    {
        a[nod]=val;
    }
    else
    {
        int mij=(st+dr)/2;
        if(poz<=mij)
        {
            adaugare(nod*2,st,mij,poz,val);
        }
        else
        {
            adaugare(nod*2+1,mij+1,dr,poz,val);
        }

        if(a[2*nod]>a[2*nod+1])
        {
            a[nod]=a[2*nod];
        }
        else
        {
            a[nod]=a[2*nod+1];
        }
    }
}


int maxim_valoare(int nod,int st,int dr,int x,int y)
{
    if(st==x&&dr==y)
    {
        return a[nod];
    }
}



int main()
{
    freopen("arbint.in","r",stdin);
    freopen("arbint.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&nr);
        adaugare(1,1,n,i,nr);
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&tip,&x,&y);
        if(tip==0)
        {
            nr=maxim_valoare(1,1,n,x,y);
        }
    }

    return 0;
}