Cod sursa(job #2287019)

Utilizator petrea1551Petrea Calin petrea1551 Data 21 noiembrie 2018 12:24:47
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;

int n, t[1000010], p;

int query(int k)
{
	int rez = 0;
	for (; k > 0; k -=(k & -k))
		rez += t[k];
	return rez;
}

void update(int k, int x)
{
	for (; k <= n; k +=(k & -k))
		t[k] += x;
}

int main()
{
	ifstream cin("datorii.in");
	ofstream cout("datorii.out");
	int m;
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		int x;
		cin >> x;
		update(i, x);
	}
	for (int i = 1; i <= m; i++)
	{
		int k, x, y;
		cin >> k >> x >> y;
		if (k == 0)
			update(x, 0 - y);
		else
			cout << query(y) - query(x - 1) << '\n';
	}
	return 0;
}