Pagini recente » Cod sursa (job #1830651) | Cod sursa (job #1599349) | Cod sursa (job #385868) | Cod sursa (job #2746007) | Cod sursa (job #2865308)
#include <fstream>
#define zero(x) ((x^(x-1))&x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m;
int v[15001];
int AIB[15001];
void actualizare(int i, int v)
{
for (; i <= n; i += i & (-i))
AIB[i] += v;
}
int suma(int i)
{
int s = 0;
for (; i > 0; i -= i & (-i))
s += AIB[i];
return s;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
fin >> v[i], actualizare(i, v[i]);
for (int i = 1; i <= m; i++)
{
int c, x, y;
fin >> c >> x >> y;
if (c == 1)
fout << suma(y) - suma(x - 1) << "\n";
else
actualizare(x, -y);
}
return 0;
}