Cod sursa(job #1511442)

Utilizator bogdanciurezubogdan ciurezu bogdanciurezu Data 26 octombrie 2015 19:32:40
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");

vector <int> aib;
int n, m, q;
void update(int zi, int bani){
	int i = zi;
	for(; i <= n; i += (i & (-i) ) )
		aib[i] += bani;
}

int inter(int zi){
	int suma = 0;
	for(; zi > 0; zi -= (zi & (-zi) ) )
		suma += aib[zi];

	return suma;
}

int main(){
int x, y;

	f>>n>>m;
	aib.resize(n + 1, 0);

	for(int i = 1; i <= n; ++i){
		f>>x;

		update(i, x);
	}

	for(int i = 1; i <= m; ++i){
		f>>q>>x>>y;

		if(q == 0){
			update(x, -y);
		}
		else{
			g<<inter(y) - inter(x - 1)<<'\n';
		}
	}


	return 0;
}