Cod sursa(job #3140881)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 10 iulie 2023 14:27:15
Problema Arbori de intervale Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include<fstream>
using namespace std;
ifstream F("arbint.in");
ofstream G("arbint.out");
int i,n,a[200000],m,j,k,r;
int main()
{
    for(F>>n>>m,i=n;i<2*n;F>>a[i++]);
    for(i=n-1;i;a[i]=max(a[2*i],a[2*i+1]),--i);
    for(;m--;)
        if(F>>i>>j>>k,!i) {
            for(j+=n-1,k+=n-1,r=0;j<=k;r=max(r,max(a[j],a[k])),j=(j+1)/2,k=(k-1)/2);
            G<<r<<'\n';
        } else
            for(j+=n-1,a[j]=k,j>>=1;j;a[j]=max(a[2*j],a[2*j+1]),j>>=1);
    return 0;
}