Cod sursa(job #2290223)

Utilizator SchimbatorLaurakeemoo SchimbatorLaura Data 25 noiembrie 2018 23:58:05
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
int a[20000],t[20000],n,q;
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(){
    fin>>n>>q;
	for(int i=1;i<=n;i++){
				fin>>a[i];
				update(i, a[i]);
	}
	int type,x,y;
	for(int i=1;i<=q;i++){
		
			fin>>type>>x>>y;
			if(type==0){update(x,-y);
						
			} else { fout<<query(y)-query(x-1)<<'\n';
			}
	}

}