Cod sursa(job #1902736)

Utilizator Mihai9Oniga Mihai Mihai9 Data 4 martie 2017 19:19:33
Problema Arbori de intervale Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#define ggg
using namespace std;
int arb[200002],i,n,m,a,b,x;
bool q;
ifstream f("arbint.in");
ofstream g("arbint.out");
int main(){
 f>>n>>m;
 for(i=0;i<n;i++)f>>arb[i+n];
 for(i=n-1;i>0;i--)arb[i]=max(arb[i*2],arb[i*2+1]);
 for(;m;m--){
  f>>q;
  if(q){
   f>>a;
   a+=n-1;
   f>>arb[a];
   a/=2;
   for(;a;a/=2)arb[a]=max(arb[a*2],arb[a*2+1]);
  }
  else{
   f>>a>>b;
   a+=n-1;b+=n-1;x=0;
   for(;a<=b;){
    x=max(x,max(arb[a],arb[b]));
    b=(b-1)/2;
    a=(a+1)/2;
   }
   g<<x<<'\n';
  }
 }
}