Mai intai trebuie sa te autentifici.
Cod sursa(job #2850997)
| Utilizator | Data | 17 februarie 2022 22:00:06 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.77 kb |
//cu aib
#include<fstream>
using namespace std;
int n,m;
int data[15001];
#define flip(n) (n&(-n))
fstream cin("datorii.in",ios::in),cout("datorii.out",ios::out);
void add(int ind,int v){
for(;ind<=n;ind+=flip(ind)){
data[ind]+=v;
}
}
int sum(int ind){
int s = 0;
for(ind;ind>0;ind-=flip(ind)){
s+=data[ind];
}
return s;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
int x;
cin>>x;
add(i,x);
}
bool op;
for(;m;m--){
cin>>op;
if(op){
int r,l;
cin>>l>>r;
cout<<sum(r)-sum(l-1)<<'\n';
}
else{
int x,v;
cin>>x>>v;
add(x,-v);
}
}
return 0;
}