Pagini recente » Cod sursa (job #767174) | Cod sursa (job #495798) | Cod sursa (job #113021) | Cod sursa (job #2465377) | Cod sursa (job #1447738)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");ofstream g("datorii.out");
int n, m, x, pos, tip, a, b, aib[15002];
int zeros(int x)
{
return ((x^(x-1))&x);
}
void update(int pos, int val)
{ for(;pos<=n;pos+=zeros(pos))
aib[pos] += val;
}
int query(int pos )
{ int sum = 0;
for(; pos!=0;pos-=zeros(pos))
sum += aib[pos];
return sum;
}
int main()
{ f>>n>>m;
for (int i=1;i<=n;i++) {f>>a; update(i, a); }
for (int i=1;i<=m;i++) {
f>>tip>>a>>b;
if (tip==0) update(a, -b);
else g << query(b) - query(a - 1) << '\n';
}
return 0;
}