Pagini recente » Cod sursa (job #2863594) | Cod sursa (job #280978) | Cod sursa (job #770093) | Cod sursa (job #1195368) | Cod sursa (job #1739256)
#include <fstream>
#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
#include <set>
#define pb push_back
#define NMAX 20005
#define INF 0x3f3f3f3f
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[NMAX],n;
inline int lsb(int x) {return (x&(x-1))^x;}
void update(int pos, int val) {
while(pos<=n) {
aib[pos]+=val;
pos+=lsb(pos);
}
}
int query(int pos) {
int sum=0;
while(pos>0) {
sum+=aib[pos];
pos-=lsb(pos);
}
return sum;
}
int main() {
int i,j,m,t,x,y;
fin>>n>>m;
for(i=1;i<=n;++i) {
fin>>x;
update(i,x);
}
for(i=0;i<m;++i) {
fin>>t>>x>>y;
if(t==0) update(x,-y);
else fout<<query(y)-query(x-1)<<'\n';
}
return 0;
}