Cod sursa(job #2114759)

Utilizator DimaTCDima Trubca DimaTC Data 25 ianuarie 2018 20:28:49
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<bits/stdc++.h>
#define ll long long
using namespace std;

int bit[15050];
int n,m,x,t,v,p,q;
int query(int i) {
	ll s=0;
	while (i) {
		s+=bit[i];
		i-= i&(-i);
	}
	return s;
}

void update(int i, int val) {
	while(i<=n) {
		bit[i]+=val;
		i+=i&(-i);
	}
}

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);
	}
	
	for (int i=0; i<m; i++) {
		cin>>x;
		if (x==0) {
			cin>>t>>v;
			update(t,-v);
		} else {
			cin>>p>>q;
			cout<<query(q)-query(p-1)<<'\n';
		}
	}
	
	
	
	return 0;
}