Cod sursa(job #3364239)

Utilizator Maryy_1369Gociu Maria Anastasia Maryy_1369 Data 31 august 2026 16:31:16
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include<queue>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<climits>
#include<deque>
#include<unordered_map>
#include<unordered_set>
#include<string>
#define lsb(x) (x & (-x))
using namespace std;

ifstream cin("datorii.in");
ofstream cout("datorii.out");
vector<long long>aib;
int v[15002];
void aibup(int k,int vl){
  for(int i=k;i<aib.size();i+=lsb(i))aib[i]+=vl;
}
long long aibsum(int x){
 long long s=0;
 for(int i=x;i>0;i-=lsb(i))s+=aib[i];
 return s;
}
int main()
{
 int n,q;
 cin>>n>>q;
 aib.resize(n+1,0);
 for(int i=1;i<=n;i++){
    cin>>v[i];
    aibup(i,v[i]);
 }
 while(q--){
    int op,a,b;
    cin>>op>>a>>b;
    if(op==0){
        aibup(a,-b);
        v[a]-=b;
    }
    else cout<<aibsum(b)-aibsum(a-1)<<"\n";
 }
 return 0;
}