Pagini recente » Cod sursa (job #1044561) | Cod sursa (job #1952126) | Cod sursa (job #1360581) | Cod sursa (job #624722) | Cod sursa (job #2303268)
#include <iostream>
#include <fstream>
#define NMAX 15001
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m;
int x, aib[NMAX];
void adauga(int x,int valoare)
{
int i;
for (int i = x ;i <= n;i += i & (-i))
aib[i] += valoare;
}
int suma(int x)
{
int s = 0;
int i;
for (int i = x; i >= 1 ; i -= i & (-i))
s += aib[i];
return s;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n;i++)
{
fin >> x;
adauga(i,x);
}
for (int i = 1; i <= m;i++)
{
int c, x, y;
fin >> c >> x >> y;
if (c == 0)
{
adauga(x,-y);
}
else if (c == 1)
{
fout << suma(y) - suma(x-1) << " ";
}
}
return 0;
}