Cod sursa(job #415242)

Utilizator otilia_sOtilia Stretcu otilia_s Data 11 martie 2010 00:32:12
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#define NMAX 15004
using namespace std;
int S[NMAX],n;

void achita(int poz,int x)
{
	do
	{
		S[poz]-=x;
		poz+=((poz^(poz-1))&poz);
	}
	while (poz<=n);
}

int suma(int x)
{
	int sum=0;
	do
	{
		sum+=S[x];
		x-=((x^(x-1))&x);
	}
	while (x>0);

	return sum;
}

int main()
{
	ifstream fin("datorii.in"); ofstream fout("datorii.out");
	int m,i,x,y,tip;
	fin>>n>>m;
	for (i=1;i<=n;++i) { fin>>x; achita(i,-x);}
	while (m--)
	{
		fin>>tip>>x>>y;
		if (tip==0) achita(x,y); 
		    else fout<<suma(y)-suma(x-1)<<"\n";
	}
	fin.close(); fout.close();
	return 0;
}