Cod sursa(job #2290219)

Utilizator SchimbatorLaurakeemoo SchimbatorLaura Data 25 noiembrie 2018 23:52:02
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;
int a[10000],t[10000],n;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int query(int k){
	int ret=0;
	for(int i=k;i>0;i-=(i&-i)){ret+=t[i];
								}
	return ret;
}

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

int main(){
	int q;  fin>>n>>q;
	for(int i=1;i<=n;i++){
				fin>>a[i];
				update(i, a[i]);
	}
	 
	for(int i=1;i<=q;i++){
			int type,x,y;
			fin>>type>>x>>y;
			if(type==0){update(x,-y);
						a[x]-=y;
			} else { fout<<query(y)-query(x-1)<<'\n';
			}
	}

}