Cod sursa(job #2350527)

Utilizator gazdac_alex@yahoo.comGazdac Alexandru Eugen [email protected] Data 21 februarie 2019 15:08:25
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int const maxim=16000;
ifstream in("datorii.in");
ofstream out("datorii.out");
int vector1[maxim];
ll contor=0;
int n,m,a,b,p;

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(){
	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;
}