Cod sursa(job #1956407)

Utilizator ButmalaiDanButmalai Dan ButmalaiDan Data 6 aprilie 2017 18:40:42
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<bits/stdc++.h>
using namespace std;
int n,m,arb[100100],i,t,x;
void update(int i, int val)
{
	for(;i <= 100000; i+= (i&(-i)))
		arb[i] += val;
}
int query(int i)
{
	int ret =0;
	for(;i >= 1;i -= (i&(-i)))
		ret += arb[i];
	return ret;
}
int main()
{
	ifstream cin("datorii.in");
	ofstream cout("datorii.out");
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
	{
		cin >> x;
		update(i,x);
	}
	while(m--)
	{
		cin >> t;
		if(t)
		{
			int i;
			cin >> i >> x;
			cout << query(x) - query(i-1) << "\n";
		}else
			{
				int i;
				cin >> i >> x;
				x*=-1;
				update(i,x);	
			}
	}
}