Cod sursa(job #3323449)

Utilizator PetreIonutPetre Ionut PetreIonut Data 18 noiembrie 2025 12:56:03
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define NMAX 100005
#define ll long long

std::ifstream f("datorii.in");
std::ofstream g("datorii.out");

using namespace std;

int n, q, ans;
int a[NMAX], aib[NMAX];

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

ll sum(int x){
    ll ans=0;
    for(int i=x;i>=1;i-=i&-i) ans+=aib[i];
    return ans;
}

void update(){
    int x, val;
    f >> x >> val;
    add(x, -val);
}

void solve(){
    int x, y;
    f >> x >> y;
    g << sum(y)-sum(x-1) << '\n';
}

int main(){
    f >> n >> q;
    for(int i=1;i<=n;i++) f >> a[i], add(i, a[i]);
    for(int i=1;i<=q;i++){
        int cer;
        f >> cer;
        if(cer==0) update();
        else if(cer==1) solve();
    }
}