Cod sursa(job #2875259)

Utilizator AndreeeeiAndrei-Ioan Andreeeei Data 21 martie 2022 12:53:35
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream in("datorii.in");
ofstream out ("datorii.out");

int aib[15005];

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

int sum (int p)
{
    int ans = 0;

    for(int i = p; i >= 1; i -= (i&(-i)))
        ans += aib[i];

    return ans;
}

int main()
{
    int n, x, m;

    in >> n >> m;

    for(int i = 1; i <= n; i ++)
    {
        in >> x;
        update(i, n, x);
    }

    for(int i = 1; i <= m; i ++)
    {
        int c, a, b;
        in >> c >> a >> b;

        if(c == 0)
        {
            update(a, n, -b);
        }
        else
            out << sum(b) - sum(a - 1) << '\n';
    }

    return 0;
}