Pagini recente » Cod sursa (job #328516) | Cod sursa (job #2869803) | Cod sursa (job #2088398) | Cod sursa (job #1541381) | Cod sursa (job #2112599)
#include <bits/stdc++.h>
#define inc(x) ((x^(x-1))&x) ///2^k
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,aib[15005];
void adauga(int val,int k) {
int i;
for (i=k;i<=n;i+=inc(i))
aib[i]+=val;
}
int suma(int k) {
int i,s=0;
for (i=k;i>=1;i-=inc(i))
s+=aib[i];
return s;
}
int main() {
int i,x,y,p;
f>>n>>m;
for (i=1;i<=n;i++) {
f>>x;
adauga(x,i);
}
for (i=1;i<=m;i++) {
f>>p>>x>>y;
if (p==1)
g<<suma(y)-suma(x-1)<<'\n';
else adauga(-y,y);
}
return 0;
}