Cod sursa(job #1834831)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 25 decembrie 2016 14:22:36
Problema Arbori de intervale Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <cstdio>

using namespace std;

int n,m,c[10000],x[10000],y[10000],o[10000];

void Read()
{
    freopen("arbint.in","r",stdin);
    scanf("%i %i",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%i",&c[i]);
    for(int i=1;i<=m;i++)
        scanf("%i %i %i",&o[i],&x[i],&y[i]);
}

int maxim(int a,int b)
{
    int maxa = 0;
    for(int i=a;i<=b;i++)
    {
        if(c[i] > maxa)
            maxa = c[i];
    }
    return maxa;
}

void Calcul()
{
    freopen("arbint.out","w",stdout);
    for(int i=1;i<=m;i++)
    {
        if(o[i] == 1)
        {
            c[x[i]] = y[i];
        }
        else
        {
            printf("%i\n",maxim(x[i] , y[i]));
        }
    }
}

int main()
{
    Read();
    Calcul();
    return 0;
}