Cod sursa(job #3364262)

Utilizator TudorMitMituca Tudor TudorMit Data 31 august 2026 20:07:49
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

ifstream cin("datorii.in");
ofstream cout("datorii.out");

long long aib[15005];
int v[15005];
int n, m;

void upd(int pos, int val) {
    for(int i=pos;i<=n;i+=i & -i)
        aib[i]+=val;
}

long long qr(int pos) {
    long long s=0;
    for(int i=pos;i>0;i-=i & -i)
        s+=aib[i];
    return s;
}

int main() {
    int op,a,b;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>v[i];
        upd(i,v[i]);
    }
    for(int i=1;i<=m;i++){
        cin>>op>>a>>b;
        if(op==0){
            upd(a,-b);
        }
        else
            cout<<qr(b)-qr(a-1)<<'\n';
    }
    return 0;
}