Pagini recente » Cod sursa (job #2449479) | Cod sursa (job #938171) | Cod sursa (job #2981819) | Cod sursa (job #903895) | Cod sursa (job #3290572)
#include <fstream>
using namespace std;
ifstream in("aib.in");
ofstream out("aib.out");
const int NMAX = 1e5 + 5;
int aib[NMAX], n, m, i;
void update(int poz, int val) {
for(int i = poz; i <= n; i += (i&-i))
aib[i] += val;
}
int query(int a) {
int suma = 0;
for(int i = a; i > 0; i-=(i&-i))
suma+=aib[i];
return suma;
}
int main()
{
in >> n >> m;
for(i = 1; i <= n; ++i) {
int x;
in >> x;
update(i,x);
}
while(m--){
int t;
in >> t;
if(!t){
int a, b;
in >> a >> b;
update(a,b);
}
else if(t==1){
int a, b;
in >> a >> b;
out << query(b) - query(a) << '\n';
}
else {
int a;
in >> a;
}
}
return 0;
}