Cod sursa(job #1141877)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 13 martie 2014 11:30:31
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>

using namespace std;

int m,n,i,x,p,q,op;

int v[100005];

int lsb(int x) {
	return x&-x;
}

void update(int i, int x) {
	for(;i<=n;i+=lsb(i))
		v[i]+=x;
}
long long query(int p) {
	long long s=0;
	for(;p;p-=lsb(p))
		s+=v[p];
	return s;
}

int main() {
	ifstream f("datorii.in");
	ofstream g("datorii.out");
	f>>n>>m;
	for(i=1;i<=n;i++) {
		f>>x;
		update(i,x);
	}
	while(m--) {
		f>>op;
		if(op==0) {
			f>>i>>x;
			update(i,-x);
		}
		else {
			f>>p>>q;
			g<<query(q)-query(p-1)<<"\n";
		}
	}


	return 0;
}