Cod sursa(job #3338297)

Utilizator Alexandru_HlusovAlexandru Hlusov Alexandru_Hlusov Data 2 februarie 2026 14:09:15
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream input("f.in");
ofstream output("f.out");

int N, M, A[15001];

int lsb(int n){
    return n & (-n);
}

void add(int pos, int amount){
    for(int i = pos; i <= N; i += lsb(i))
        A[i] += amount;
}

int compute(int pos){
    int sum = 0;
    for(int i = pos; i >= 1; i -= lsb(i))
        sum += A[i];
    return sum;
}

int main(){
    input >> N >> M;

    for(int i = 1; i <= N; i ++){
        int x;
        input >> x;
        add(i, x);
    }

    for(int i = 0; i < M; i ++){
        int code;
        input >> code;

        if(code == 0){
            int T, V;
            input >> T >> V;

            add(T, -V);
        }
        else{
            int P, Q;
            input >> P >> Q;

            cout << compute(Q) - compute(P - 1) << "\n";
        }
    }
}