Pagini recente » Cod sursa (job #2157865) | Cod sursa (job #147793) | Cod sursa (job #896409) | Cod sursa (job #1654053) | Cod sursa (job #1866412)
#include <iostream>
#include <fstream>
#define zeros(x) ((x^(x-1)) & x )
#define N 100010
using namespace std;
ifstream f("arbint.in");
ofstream g("arbint.out");
int maxArb[N],i,j,n,m,k,t,p,r;
void Add(int p,int quant)
{
int i;
for(i=p;i<=n;i+=zeros(i))
maxArb[i]=quant;
}
int query(int p)
{
int i,max1=-13;
for(i=p;i>0;i=i-zeros(i))
max1=max(max1,maxArb[i]);
return max1;
}
int main()
{
int x,y,z;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>x;
Add(i,x);
}
int rez;
while(m!=0)
{
f>>x>>y>>z;
if(x==0)
{
rez=max(query(y),query(z));
g<<rez<<"\n";
}
else
{
Add(y,z);
}
m--;
}
}