Cod sursa(job #2904455)

Utilizator ScoveargaIlie Andrei-Virgil Scovearga Data 17 mai 2022 23:40:30
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");
int arb[15100], n, q, op, i, x, y;

int query(int a)
{
    int val = 0;
    for(i = a; i > 0; i -=(i & -i))
        val += arb[i];
    return val;
}

void update(int a, int val)
{
    for(i = a; i <= n; i +=(i & -i))
        arb[i] += val;
}

int main()
{
    f>>n>>q;
    for(i = 1; i <= n; ++i)
    {
        f>>x;
        update(i,x);
    }
    for(i = 1; i <= q; ++i)
    {
        f>>op>>x>>y;
        switch (op) {
            case 0:
            {
                update(x,-y);
                break;
            }
            case 1:
            {
                g<<(query(y) - query(x - 1))<<"\n";
                break;
            }
        }
    }
    return 0;
}