Cod sursa(job #641502)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 28 noiembrie 2011 17:35:37
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
#define formula(x)(x&-x)
using namespace std;

int AIB[15001],N,M,V,T,i,j,q,A,B;

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


void update(int poz ,int quantity){
	int i;
	for(i=poz ; i <=N ; i+=formula(i))
		AIB[i]+=quantity;

}
int querry(int a){
	int S=0;
	for(int i=a;i>=1;i-=formula(i))
		S+=AIB[i];
	return S;
}
int main (){
	
	f>>N>>M;
	for(i=1;i<=N;i++){
		f>>T;
		update(i,T);
	}
	
	for(i=1;i<=M;i++)
	{
	
		f>>q>>T>>V;
		if(q==0)
			update(T,-V);
		else{
			B=querry(V);
			A=querry(T-1);
			g<<B-A<<"\n";
		}
	
	
	
	
	
	}
	
	
	
return 0;
}