Pagini recente » Cod sursa (job #3196658) | Cod sursa (job #2494259) | Cod sursa (job #1340985) | Cod sursa (job #1171941) | Cod sursa (job #2386567)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m;
int tre[32041];
int nxt(int a)
{
return a & -a;
}
int read(int a)
{
int s = 0;
for(int i = a; i > 0; i -= nxt(i)){
s += tre[i];
}
return s;
}
void add(int a, int v)
{
for(int i = a; i <= n; i += nxt(i)){
tre[i] += v;
}
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++){
int a;
fin >> a;
add(i, a);
}
for(int i = 0; i < m; i++){
int op, a, b;
fin >> op >> a >> b;
if(op == 0){
add(a, -b);
}else{
fout << read(b) - read(a-1) << "\n";
}
}
return 0;
}