Cod sursa(job #697767)

Utilizator cipry13Hotea Ciprian cipry13 Data 29 februarie 2012 10:54:52
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
#define NMAx 15015
using namespace std;
int n,AIB[NMAx];
ifstream f("datorii.in");
ofstream g("datorii.out");
int query(int nod) {
	int sol=0;
	while(nod>=1) {
		sol+=AIB[nod];
		nod-=(nod&-nod);
		}
	return sol;
}
void update(int nod,int val) {
	while(nod<=n) {
		AIB[nod]+=val;
		nod+=(nod&-nod);
		}
}
int main() {
	int i,m,x,y,tip;
	f>>n>>m;
	for(i=1;i<=n;i++) {
		f>>x;
		update(i,x);
		}
	for(i=0;i<m;i++) {
		f>>tip>>x>>y;
		if(tip==0)
			update(x,-y);
		else
			g<<query(y)-query(x-1)<<'\n';
		}
	f.close();g.close();
	return 0;
}