Pagini recente » Cod sursa (job #1346154) | Cod sursa (job #784612) | Cod sursa (job #2830484) | Rating Oana nasti (Nasti) | Cod sursa (job #1842989)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("arbint.in");
ofstream g("arbint.out");
long int n, m, v[100001], val, poz, op, x, y, maxx=-1;
void querry(int st, int dr)
{
if(st==dr)
{
if(v[st]>maxx)
maxx=v[st];
return;
}
int mij=(st+dr)>>1;
if(x<=mij)
{
querry(st, mij);
}
if(y>=mij+1)
{
querry(mij+1, dr);
}
}
void update(int st, int dr)
{
if(st==dr)
{
v[st]=val;
return;
}
int mij=(st+dr)>>1;
if(poz>=st && poz<=mij)
{
update(st, mij);
}
else if(poz>=mij+1 && poz<=dr)
{
update(mij+1, dr);
}
}
int main()
{
f>>n>>m;
for(int i=1; i<=n; i++)
f>>v[i];
for(int i=1; i<=m; i++)
{
f>>op;
if(op==0)
{
maxx=-1;
f>>x>>y;
querry(1, n);
g<<maxx<<endl;
}
else if(op==1)
{
f>>poz>>val;
update(1, n);
}
}
}