Cod sursa(job #1899906)

Utilizator jordan1998Jordan jordan1998 Data 2 martie 2017 23:48:03
Problema Arbori de intervale Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define ggg 100001
using namespace std;
int arb[ggg*2],i,n,m,a,b,x;
bool q;
int main()
{
  ifstream f("arbint.in");
  ofstream g("arbint.out");
  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';
    }
}
}