Cod sursa(job #641498)

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

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

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;

}
void querry(int a,int b){
	int A,B;
	for(int i=a-1;i>=1;i-=formula(i))
		A+=AIB[i];
	for(int j=b;j>=1;j-=formula(j))
		B+=AIB[j];
	g<<B-A<<"\n";
}
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
			querry(T,V);
	
	
	
	
	
	
	}
	
	
	
return 0;
}