Pagini recente » Cod sursa (job #44169) | Cod sursa (job #1392778) | Cod sursa (job #2328672) | Cod sursa (job #2581896) | Cod sursa (job #1675087)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
#define Nmax 400000
int v[Nmax],n,m,pos,a,b,s,start,finish,x,val;
void Update(int nod, int l, int r){
if(l == r){
v[nod]=val;
return;
}
int mij=(l + r)/2;
if(pos <= mij) Update(2*nod,l,mij);
else Update(2*nod + 1,mij+1,r);
v[nod]=max(v[2*nod],v[2*nod+1]);
}
void Querry(int nod, int l, int r){
if(start <= l && finish >= r){
s+=v[nod];
return;
}
int mij=(l + r)/2;
if(start <= mij )Querry(2*nod,l,mij);
if(finish > mij) Querry(2*nod +1,mij+1,r);
}
int main(){
in>>n>>m;
for(int i=1;i<=n;i++){
in>>val;
pos=i;
Update(1,1,n);
out<<v[i]<<" ";
}
for(int i=1;i<=m;i++){
in>>x>>a>>b;
if(x == 1){
s=0;
start=a;
finish=b;
Querry(1,1,n);
//out<<s<<'\n';
}
else{
pos=a;
val=b;
Update(1,1,n);
}
}
return 0;
}