Cod sursa(job #2704647)

Utilizator tomaionutIDorando tomaionut Data 10 februarie 2021 21:44:03
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, aib[100005];
void Update(int poz, int x)
{
	while (poz <= n)
	{
		aib[poz] += x;
		poz += (poz & (-poz));
	}
}
int Query(int poz)
{
	int s = 0;
	while (poz > 0)
	{
		s += aib[poz];
		poz -= (poz & (-poz));
	}
	return s;
}
int main()
{	
	int i,op,a,b,x;
	fin >> n >> m;
	for (i = 1; i <= n; i++)
	{
		fin >> x;
		Update(i, x);
	}
	for (i = 1; i <= m; i++)
	{
		fin >> op >> a >> b;
		if (op == 0)
			Update(a, -b);
		else
			fout << Query(b) - Query(a - 1) << "\n";
	}


	return 0;
}