Pagini recente » Cod sursa (job #1803537) | Cod sursa (job #296188) | Cod sursa (job #3148058) | Cod sursa (job #112612) | Cod sursa (job #641209)
Cod sursa(job #641209)
#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 query(int i);
int t[N],n;
int main() {
int t[N],i,m,k=0,op,a,b,nr;
f>>n>>m;
for(i=1;i<=n;i++) {
f>>nr;
update(nr,i);
}
for(i=1;i<=m;i++) {
f>>op>>a>>b;
if(op) {
g<<query(b)-query(a-1)<<"\n";
} else {
update(-b,a);
}
}
return 0;
}
void update(int val,int poz) {
int k;
for(k=poz;k<=n;k+=zero(k)) {
t[k]+=val;
}
}
int query(int i) {
int k,s=0;
for(k=i;k>0;k-=zero(k)) {
s+=t[k];
}
return s;
}