Cod sursa(job #964597)

Utilizator Vladinho97Iordan Vlad Vladinho97 Data 21 iunie 2013 17:34:21
Problema Arbori de intervale Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
using namespace std;
int v[100009];
int maximum(int x,int y)
{
    if(x>y)
        return x;
    return y;
}
int f(int inc,int sf)
{
    if(inc==sf)
        return v[inc];
    else
    {
        int med=(inc+sf)/2;
        return maximum(f(inc,med),f(med+1,sf));
    }
}
int main()
{
    int n,m,op,a,b,i;
    freopen("arbint.in","r",stdin);
    freopen("arbint.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&op);
        if(op==0)
        {
            scanf("%d%d",&a,&b);
            printf("%d\n",f(a,b));
        }
        else
        {
            scanf("%d%d",&a,&b);
            v[a]=b;
        }
    }
}