Pagini recente » Cod sursa (job #1410592) | Cod sursa (job #1414653) | Cod sursa (job #1880078) | Cod sursa (job #989402) | Cod sursa (job #2575854)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int N_MAX = 15000;
int aib[N_MAX + 10];
int n, m;
void update(int poz, int val)
{
for(int i = poz; i <= n; i += i & -i)
aib[i] += val;
}
int query(int poz)
{
int s = 0;
for(int i = poz; i >= 1; i -= i & -i)
s += aib[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;
}