Cod sursa(job #3313917)

Utilizator popescu_georgePopescu George popescu_george Data 7 octombrie 2025 12:08:07
Problema Arbori de intervale Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
using namespace std;
ifstream cin("arbint.in");
ofstream cout("arbint.out");
int a[200000];
int main()
{
    int m,n;
    cin>>n>>m;
    for(int i=n;i<2*n;cin>>a[i++]);
    for(int i=n-1;i;a[i]=max(a[2*i],a[2*i+1]),--i);
    for(;m--;) {
        int i,j,k;
        if(cin>>i>>j>>k,i)
            for(j+=n-1,a[j]=k,j>>=1;j;a[j]=max(a[2*j],a[2*j+1]),j>>=1);
        else {
            int l=0;
            for(j+=n-1,k+=n-1;j<=k;l=max(l,max(a[j],a[k])),j=(j+1)/2,k=(k-1)/2);
            cout<<l<<'\n';
        }
    }
    return 0;
}