Pagini recente » Cod sursa (job #2096162) | Cod sursa (job #2100562) | Cod sursa (job #1713658) | Cod sursa (job #2896175) | Cod sursa (job #2211211)
#include <fstream>
#define ub(x) (x&(-x))
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int n, m, x, caz, t, v;
int aib[15002];
void update (int poz, int val, int caz)
{
for (int i = poz; i <= n; i += ub(i))
{
if (caz == 0) aib[i] += val;
else aib[i] -= val;
}
}
int Sum (int poz)
{
int S = 0;
for (int i = poz; i > 0; i -= ub(i))
{
S = S + aib[i];
}
return S;
}
int main()
{
f >> n >> m;
for (int i = 1; i <= n; i++)
{
f >> x;
update(i, x, 0);
}
for (int i = 1; i <= m; i++)
{
f >> caz;
if (caz == 0)
{
f >> t >> v;
update(t, v, 1);
}
else
{
f >> t >> v;
g << Sum(v) - Sum(t-1) << '\n';
}
}
return 0;
}