Pagini recente » Cod sursa (job #326894) | Cod sursa (job #1559961) | Cod sursa (job #2678643) | Cod sursa (job #1353878) | Cod sursa (job #641190)
Cod sursa(job #641190)
#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 j,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,a,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 j,int *t) {
int k,s1=0,s2=0;
for(k=i;k>0;k-=zero(k)) {
s1+=t[k];
}
for(k=j-1;k>0;k-=zero(k)) {
s2+=t[k];
}
return s1-s2;
}