Pagini recente » Cod sursa (job #541483) | Cod sursa (job #17217) | Cod sursa (job #455881) | Cod sursa (job #505528) | Cod sursa (job #2586031)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int N_MAX = 15000;
int v[N_MAX + 10];
int n, m;
void update(int poz, int val)
{
for(int i = poz; i <= n; i += i & -i)
v[i] += val;
}
int query(int poz)
{
int s = 0;
for(int i = poz; i >= 1; i -= i & -i)
s += v[i];
return s;
}
void scan()
{
in >> n >> m;
for(int i = 1; i <= n; i++)
{
int x;
in >> x;
update(i, x);
}
}
void solve()
{
while(m--)
{
int p, a, b;
in >> p >> a >> b;
if(p == 0)
update(a, -b);
else
out << query(b) - query(a-1) << '\n';
}
}
int main()
{
scan();
solve();
return 0;
}