Cod sursa(job #3211358)

Utilizator TomaBToma Brihacescu TomaB Data 9 martie 2024 10:37:52
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>

using namespace std;

int aib[15004], n, m;

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

void update (int p, int v)
{
    for (int i = p; i <= n; i = i + (i&(-i)))
        aib[i]+=v;
}


int main()
{
    freopen("datorii.in", "r", stdin);
    freopen("datorii.out", "w", stdout);
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        update(i, x);
    }
    for (int j = 1; j <= m; j++)
    {
        int cod, p, q;
        cin >> cod >> p >> q;
        if (cod==0)
            update(p, -q);
        if(cod==1)
            cout << query(q) - query(p-1) << '\n';
    }
    return 0;
}