Cod sursa(job #1500345)

Utilizator ArkinyStoica Alex Arkiny Data 11 octombrie 2015 19:34:26
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;

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

int N, M,i,a,b,j,op;
int v[15001];

void update(int i, int e)
{
	for (;i <= N;i += i&(-i))
		v[i] += e;
}
int query(int i)
{
	int s = 0;
	for (;i;i -= i&(-i))
		s += v[i];
	return s;
}
int main()
{
	in >> N >> M;
	int e;
	for (i = 1;i <= N;++i)
	{
		in >> e;
		update(i,e);
	}
	for (i = 1;i <= M;++i)
	{
		in >> op >> a >> b;

		if (op == 1)
		{
			
			out << query(b)-query(a-1) << '\n';
		}
		else
		{
			update(a, -b);
		}

	}
	return 0;
}