Cod sursa(job #935251)

Utilizator catalinutzbCraciun Catalin catalinutzb Data 2 aprilie 2013 15:22:25
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
/// Craciun Catalin (c)
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");

int A[15005],n,m;

void achitare(int x, int val);
int suma(int x);

int main(){

	int q,x,y;
	int i;

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

		f>>x;
		achitare(i,x);
	}

	while (m--){

		f>>q>>x>>y;
		if (q==0)
			achitare(x,-y);
		else
			g<<suma(y)-suma(x-1)<<"\n";
	}

	f.close();
	g.close();

	return 0;
}

int suma(int x){

    int suma(0);
	while (x){
		suma+=A[x];
		x-=x&-x;
	}

	return suma;
}

void achitare(int x, int val){

	while (x<=n){
		A[x]+=val;
		x+=x&-x;
	}
}