Cod sursa(job #2451490)

Utilizator vlad082002Ciocoiu Vlad vlad082002 Data 26 august 2019 23:47:29
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
#define zeros(x) x&-x

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

int aib[15001], n, m;

void add(int val ,int poz) {
    for(int i = poz; i <= n; i+= zeros(i))
        aib[i] += val;
}

int sum(int a) {
    int s = 0;
    for(int i = a; i > 0; i -= zeros(i))
        s += aib[i];
    return s;
}

int main() {
    f >> n >> m;
    int x;
    for(int i = 1; i <= n; i++) {
        f >> x;
        add(x, i);
    }

    int op, a, b;
    for(int i = 1; i <= m; i++) {
        f >> op >> a >> b;
        if(!op)
            add(-b, a);
        else
            g << sum(b)- sum(a-1) << '\n';
    }
}