Cod sursa(job #1899902)

Utilizator jordan1998Jordan jordan1998 Data 2 martie 2017 23:44:16
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 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=max(arb[a],arb[b]);
        for(;a<b;)
        {
            b=(b-1)/2;
            a=(a+1)/2;
            x=max(x,max(arb[a],arb[b]));

        }
        g<<x<<'\n';
    }
}
}