Cod sursa(job #2350519)

Utilizator gazdac_alex@yahoo.comGazdac Alexandru Eugen [email protected] Data 21 februarie 2019 14:59:49
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int const maxim=16000;
int vector1[maxim];
ll contor=0;
int n;
void update(int nod_start,int suma){
for(int i=nod_start;i<=n;i+=(i&(-i))){
    vector1[i]+=suma;
}
}

int suma(int nod_start){
int solutie=0;
for(int i=nod_start;i>0;i-=(i&(-i))){
    solutie+=vector1[i];
}
return solutie;
}


int main(){
	int m,a,b,p;
	ifstream in("datorii.in");
	ofstream out("datorii.out");
	in>>n >> m;
	for(int i=1;i<=n;i++){
        in >> a;
        update(i,a);
	}
	for(int i=1;i<=m;i++){
        in >>p >> a >> b;
        if(p==0)update(a,-b);
        else out << suma(b) - suma(a-1) << endl;
	}
	return 0;
}