Pagini recente » Cod sursa (job #2170881) | Cod sursa (job #3200814) | Cod sursa (job #352122) | Cod sursa (job #941477) | Cod sursa (job #1807477)
#include <fstream>
#define ub(i) (i&(-i))
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int N, M, x, c, y, t, v, AIB[15003];
void add(int poz, int val) {
for(int i = poz; i <= N; i += ub(i))
AIB[i] += val;
}
int restante(int x, int y) {
int SUMY = 0, SUMX = 0;
for(int i = y; i >= 1; i -= ub(i))
SUMY += AIB[i];
for(int i = x - 1; i >= 1; i -= ub(i))
SUMX += AIB[i];
return SUMY - SUMX;
}
int main()
{
f >> N >> M;
for(int i = 1; i <= N; i++) f >> x, add(i, x);
for(int i = 1; i <= M; i++) {
f >> c;
if(c == 0) f >> t >> v, add(t, -v);
else f >> x >> y, g << restante(x, y) << "\n";
}
if(!M) g << "\n";
return 0;
}