Cod sursa(job #3311620)
| Utilizator | Data | 23 septembrie 2025 16:02:42 | |
|---|---|---|---|
| Problema | Datorii | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n;
int bit[150050];
void update(int i,int val){
while(i<=n){
bit[i]+=val;
i+=i&(-i);
}
}
int prefix(int i){
int sum=0;
while(i>0){
sum+=bit[i];
i-=i&-i;
}
return sum;
}
int main(){
int n,m,x,y,z;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>x;
update(i,x);
}
for(int i=1;i<=m;i++){
cin>>x>>y>>z;
if(x==0){
update(y,-z);
}
else{
cout<<prefix(z)-prefix(y-1)<<'\n';
}
}
}
