Pagini recente » Cod sursa (job #673082) | Cod sursa (job #2755618) | Cod sursa (job #579701) | Cod sursa (job #429489) | Cod sursa (job #2183393)
#include <cstdio>
using namespace std;
#define NMAX 15005
int n, m, aib[NMAX];
void update(int poz, int val) {
for(; poz<=n; poz+=poz&-poz)
aib[poz] += (-1) * val;
}
int querry(int poz) {
int sum = 0;
for(; poz>0; poz-=poz&-poz)
sum += aib[poz];
return sum;
}
int main() {
int i, x, y, aux;
FILE *fin, *fout;
fin = fopen("datorii.in", "r");
fout = fopen("datorii.out", "w");
fscanf(fin, "%d %d", &n, &m);
for(i=1; i<=n; i++) {
fscanf(fin, "%d ", &aux);
update(i, (-1) * aux);
}
for(i=1; i<=m; i++) {
fscanf(fin, "%d ", &aux);
if(aux == 0) {
fscanf(fin, "%d %d", &x, &y);
update(x, y);
}
else {
fscanf(fin, "%d %d", &x, &y);
fprintf(fout, "%d\n", querry(y) - querry(x-1));
}
}
return 0;
}