Cod sursa(job #3352484)

Utilizator TraianQTraianQ TraianQ Data 28 aprilie 2026 11:21:12
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define zeros(x) (x^(x-1)&x)
using namespace std;
int v[15001];
int n, m;
void add(int x, int val) {
    for(int i = x; i <= n; i += zeros(i))
        v[i] += val;
}
int sum(int x) {
    int s = 0;
    for(int i = x; i; i -= zeros(i))
        s+= v[i];
    return s;
}
int main() {
    ifstream fin("datorii.in");
    ofstream fout("datorii.out");
    fin>>n>>m;
    int a, b, c;
    for(int i = 1 ; i <= n; i++) {
        fin>>a;
        add(i, a);
    }

    for(int i = 1 ; i <= m; i++) {
        fin>>a>>b>>c;
        if(a==0) {
            add(b, -c);
        }
        else {
            fout<<sum(c) - sum(b-1)<<"\n";
        }
    }
    return 0;
}