Pagini recente » Cod sursa (job #2748320) | Cod sursa (job #1980620) | Cod sursa (job #3224363) | Cod sursa (job #3154834) | Cod sursa (job #1108272)
#include<fstream>
#define Nmax 15010
#define lsb(x) (x & -x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N, M, AIB[Nmax];
void update(int x, int val)
{
for (int i = x; i <= N; i += lsb(i))
AIB[i] += val;
}
int query(int x)
{
int res=0;
for (int i = x; i; i -= lsb(i))
res += AIB[i];
return res;
}
int main()
{
int op, a, b, i;
fin >> N >> M;
for (i = 1; i <= N; ++i)
{
fin >> a;
update(i, a);
}
for (i = 1; i <= M; ++i)
{
fin >> op>>a>>b;
switch (op)
{
case 0: update(a, -b); break;
case 1: fout << query(b) - query(a - 1) << '\n'; break;
}
}
return 0;
}