Cod sursa(job #672265)

Utilizator firewavesBirsu Ion firewaves Data 1 februarie 2012 20:08:26
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
#define zeros(x) (x&(-x))
using namespace std;
ifstream g("datorii.in");
ofstream h("datorii.out");
int a[100010];
int sum ( int nr )
{
	int s = 0, i;
	for ( i = nr; i >= 1; i -= zeros(i) )
		s += a[i];
	return s;
}
void achita ( int i, int cant, int n )
{
	for ( int j = i; j <= n; j += zeros(j) )
		a[j] += cant;
}
int main()
{
	int n, m, i, t, v, x;
	bool vd;
	g >> n >> m;
	for ( i = 1; i <= n; i++ )
	{
		g >> x;
		achita ( i,x,n );
	}
	for ( i = 1; i <= m; i++ )
	{
		g >> vd >> t >> v;
		if ( vd )
		{
			h << sum ( v ) - sum ( t-1 ) << '\n';
		}
		if ( !val )
		{
			achita ( t,-v,m );
		}
	}
	g.close();
	h.close();
	return 0;
}