Cod sursa(job #3330501)

Utilizator Alex283810Mocan Alexandru Vali Alex283810 Data 19 decembrie 2025 19:35:37
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>


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

void update(int nod, int val)
{
     for(; nod <= n; nod += (nod & -nod))
        v[nod] += val;
}

long long query(int nod)
{
    long long sum = 0;
    for(; nod > 0; nod -= (nod & -nod))
        sum += v[nod];
    return sum;
}

int main() {

    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);

    freopen("datorii.in", "r", stdin);
    freopen("datorii.out", "w", stdout);

    std::cin >> n >> m;

    for(int i = 1; i <= n; i++)
    {
        int a;
        std::cin >> a;
        update(i, a);
    }

    for(int i = 1; i <= m; i++)
    {
        int op, a, b;
        std::cin >> op >> a >> b;
        if(op == 0)
        {
            update(a, -b);
        }
        else
        {
            std::cout << query(b) - query(a - 1) << "\n";
        }
    }

    return 0;
}