Pagini recente » Cod sursa (job #2510622) | Cod sursa (job #1802209) | Cod sursa (job #2075363) | Borderou de evaluare (job #202216) | Cod sursa (job #641203)
Cod sursa(job #641203)
#include <fstream>
#define N 15001
#define zero(n) ((n^(n-1))&n)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
void update(int val,int poz,int *t,int n);
int query(int i,int *t);
int main() {
int t[N],i,n,m,k=0,op,a,b,nr;
f>>n>>m;
for(i=1;i<=n;i++) {
f>>nr;
update(nr,i,t,n);
}
for(i=1;i<=m;i++) {
f>>op>>a>>b;
if(op) {
g<<query(b,t)-query(a-1,t)<<"\n";
} else {
update(-b,a,t,n);
}
}
return 0;
}
void update(int val,int poz,int *t,int n) {
int k;
for(k=poz;k<=n;k+=zero(k)) {
t[k]+=val;
}
}
int query(int i,int *t) {
int k,s=0;
for(k=i;k>0;k-=zero(k)) {
s+=t[k];
}
return s;
}