Pagini recente » Cod sursa (job #2030306) | Concursuri | Cod sursa (job #246887) | Cod sursa (job #1792989) | Cod sursa (job #1792488)
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
#define NMAX 15000
int a[NMAX + 1], n, m, x, cer, y;
void initial(int x, int val)
{
for (int i = x; i <= n; i+=(i&-i))
a[i]+=val;
return;
}
void update(int x, int val)
{
for (int i = x; i <=n; i+=(i&-i))
a[i]-=val;
return;
}
int query(int x)
{
int sum = 0;
for (int i = x; i > 0; i-=(i&-i))
sum +=a[i];
return sum;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
fin >> x;
initial(i, x);
}
for (int i = 1; i <= m; i++)
{
fin >> cer >> x >> y;
if (cer == 0)update(x, y);
else fout << query(y) - query(x - 1) << '\n';
}
return 0;
}