Pagini recente » Cod sursa (job #287876) | Cod sursa (job #2061870) | Cod sursa (job #2487663) | Cod sursa (job #1668027) | Cod sursa (job #3270060)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
#define lsb(i) (i & (-i))
const int NMAX = 15005;
int n, m, a[NMAX], aib[NMAX];
void update(int day, int val)
{
for(int i = day; i <= n; i += lsb(i))
aib[i] += val;
}
int sum(int dr)
{
int ans = 0;
for(int i = dr; i >= 1; i -= lsb(i))
ans += aib[i];
return ans;
}
signed main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
fin >> a[i];
update(i, a[i]);
}
while(m--)
{
bool op;
fin >> op;
if(op == 0)
{
int day, val;
fin >> day >> val;
update(day, -val);
}
else
{
int st, dr;
fin >> st >> dr;
fout << sum(dr) - sum(st - 1) << "\n";
}
}
return 0;
}