Pagini recente » Monitorul de evaluare | Rezultatele filtrării | Monitorul de evaluare | Cod sursa (job #939260) | Cod sursa (job #3211358)
#include <iostream>
using namespace std;
int aib[15004], n, m;
int query (int v)
{
int sum=0;
for (int i = v; i>0; i = i - (i&(-i)))
sum += aib[i];
return sum;
}
void update (int p, int v)
{
for (int i = p; i <= n; i = i + (i&(-i)))
aib[i]+=v;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
update(i, x);
}
for (int j = 1; j <= m; j++)
{
int cod, p, q;
cin >> cod >> p >> q;
if (cod==0)
update(p, -q);
if(cod==1)
cout << query(q) - query(p-1) << '\n';
}
return 0;
}