Cod sursa(job #324095)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 14 iunie 2009 18:06:55
Problema Arbori de intervale Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#define DIM 100001
int a[DIM];
int arbint (int x,int y)
{
    if(x==y)
        return a[x];
    if(arbint(x,(x+y)/2)<=arbint((x+y)/2+1,y))
        return arbint((x+y)/2+1,y);
    else
        return arbint(x,(x+y)/2);
}
int main ()
{
    freopen("arbint.in","r",stdin);
    freopen("arbint.out","w",stdout);
    int i,q,x,y,n,m;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;++i)
        scanf("%d",&a[i]);
    for(i=1;i<=m;++i)
    {
        scanf("%d%d%d",&q,&x,&y);
        if(q==0)
            printf("%d\n",arbint(x,y));
        else
            a[x]=y;
    }
    return 0;
}