Cod sursa(job #2635365)

Utilizator xCata02Catalin Brita xCata02 Data 14 iulie 2020 11:35:49
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;


ifstream fin  ("datorii.in");
ofstream fout("datorii.out");

/*
#define cin  fin
#define cout fout
*/

#define Nmax 15001

int n, q;
int t, x, y; 
int a[Nmax];

void adauga(int i, int val) {
	for(; i <= n; i += i&(-i)) {
		a[i] += val;
	}
}

int calc(int i) {
	int sol = 0;
	for(; i; i -= i&(-i)) {
		sol += a[i];
	}
	return sol;
} 
 
int main() {
	fin >> n >> q;
	for(int i=1; i <= n; i++) {
		fin >> x;
		adauga(i, x);
	}
	while(q--) {
		fin >> t >> x >> y;
		if(t) {
			fout << calc(y) - calc(x - 1) << endl;
		} else {
			adauga(x, -y);
		}
	}
	return 0;
}