Cod sursa(job #3340192)
| Utilizator | Data | 12 februarie 2026 16:35:07 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int v[15005], aib[15005], n;
void update(int pos, int val){
for(int i=pos;i<=n;i+=(i&-i))
aib[i]+=val;
}
int query(int pos){
int sum=0;
for(int i=pos;i;i-=(i&-i))
sum+=aib[i];
return sum;
}
int main()
{
int q, a, b, t;
in>>n>>q;
for(int i=1;i<=n;i++){
in>>v[i];
update(i, v[i]);
}
while(q--){
in>>t>>a>>b;
if(t==0){
update(a, -b);
}
else{
out<<query(b) - query(a-1)<<" ";
}
}
return 0;
}
