Cod sursa(job #3171761)

Utilizator magicninjaJula Diana magicninja Data 19 noiembrie 2023 15:46:03
Problema Arbori de intervale Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;

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

int n, v[100005];

void tom(int poz, int val){
    v[poz] = val;
    return;
}

int jerry(int stn, int drn, int stj, int drj){
    if(stn == drn){
        return v[stn];
    }
    int mij = (stn + drn) / 2, rez = 0;
    if(stj <= mij){
        rez = max(jerry(stn, mij, stj, drj), rez);
    }
    if(drj > mij){
        rez = max(jerry(mij + 1, drn, stj, drj), rez);
    }
    return rez;
}

int main()
{
    int m, i, cer, a, b;
    in >> n >> m;
    for(i = 1; i <= n; i++){
        in >> v[i];
    }
    for(i = 1; i <= m; i++){
        in >> cer >> a >> b;
        if(cer == 0){
            out << jerry(1, n, a, b) << '\n';
        }
        else{
            tom(a, b);
        }
    }
    return 0;
}