Pagini recente » Cod sursa (job #168651) | Cod sursa (job #3208852) | Cod sursa (job #2259051) | Clasament FMI No Stress 6 | Cod sursa (job #2294451)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15005];
int suma[15005];
int n;
int query(int x){
int sum=0;
while(x>0){
sum+=suma[x];
x-=(x^(x&(x-1)));
}
return sum;
}
void update(int x, int val){
int i;
for(i=x;i<=n;i+=(i^(i&(i-1))))
if(suma[i]>=val)
suma[i]-=val;
}
int main(){
int aux,m,i,op,x,y;
fin>>n>>m;
for(i=1;i<=n;i++){
fin>>v[i];
for(int j=i;j<=n;j+=(j^(j&(j-1))))
suma[j]+=v[i];
}
for(i=1;i<=m;i++){
fin>>op>>x>>y;
if(!op){
update(x,y);
}
else{
fout<<query(y)-query(x-1)<<"\n";
}
}
return 0;
}