Pagini recente » Cod sursa (job #2398361) | Cod sursa (job #3304210) | Cod sursa (job #1320650) | Cod sursa (job #1562058) | Cod sursa (job #3332730)
#include <fstream>
using namespace std;
ifstream cin ("datorii.in");
ofstream cout ("datorii.out");
int n;
int v[15005];
int aib[15005];
void update(int poz,int val) {
while (poz<=n) {
aib[poz]+=val;
poz+=poz & (-poz);
}
}
void update1(int poz,int val) {
while (poz<=n) {
aib[poz]-=val;
poz+=poz & (-poz);
}
}
int query(int poz) {
int sum=0;
while (poz>0) {
sum+=aib[poz];
poz-=poz & (-poz);
}
return sum;
}
int main() {
int q;
cin>>n>>q;
for (int i=0; i<n; i++) {
cin>>v[i];
update(i+1,v[i]);
}
for (int i=1; i<=q; i++) {
int tip,a,b;
cin>>tip>>a>>b;
if (tip==0) update1(a,b);
else cout<<query(b)-query(a-1)<<'\n';
}
}