Cod sursa(job #2228677)

Utilizator IMIR33Iacob-Mare Ionut Radu IMIR33 Data 4 august 2018 16:49:37
Problema Arbori de intervale Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <limits.h>
#define Nmax 100001

using namespace std;

ifstream in("arbint.in");
ofstream out("arbint.out");

int N, M, C[Nmax];

int div_imp(int p, int q)
{
    int mij, max1, max2;
    if(p == q)
        return C[p];
    else
    {
        mij = (p + q) / 2;
        max1 = div_imp(p, mij);
        max2 = div_imp(mij + 1, q);
        if(max1 > max2)
            return max1;
        else
            return max2;
    }
}
int main()
{
    int  i, a, b, o;

    in >> N >> M;

    for(i = 1; i <= N; i++)
        in >> C[i];

    for(i = 1; i <= M; i++)
    {
        in >> o >> a >> b;
        if(o == 0)
            out << div_imp(a, b) << endl;
        else
            C[a] = b;
    }

    return 0;
}