Cod sursa(job #3326983)

Utilizator radu._.21Radu Pelea radu._.21 Data 1 decembrie 2025 17:26:36
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>


using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m,v[100001],aib[1000001];
void update(int poz,int val){
    for(int i = poz; i<=n; i+=(i&-i))
        aib[i]+=val;
}
int query(int poz){
    int suma = 0;
    for(int i = poz; i>=1; i-=(i&-i))
        suma+=aib[i];
    return suma;
}
int main(){
    fin>>n>>m;
    for(int i = 1; i<=n; i++){
        fin>>v[i];
        update(i,v[i]);
    }
    while(m--){
        int op; fin>>op;
        if(op == 0){
            int val,zi;
            fin>>zi>>val; //din ziua zi scad val
            update(zi,-val);
        } else{
            int st,dr;
            fin>>st>>dr;
            fout<<query(dr)-query(st-1)<<'\n';
        }
    }
    return 0;
}