Cod sursa(job #3133839)

Utilizator alexnohai04Nohai Alexandru alexnohai04 Data 27 mai 2023 01:47:33
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");

const int N = 15005;
int aib[N];

void Add(int x, int val)
{
    for (int i = x; i <= N; i += i & -i)
        aib[i] += val;
}

int sum(int x) 
{
    int s = 0;
    for (int i = x; i >= 1; i -= i & -i)
        s += aib[i];

    return s;
}

int main()
{
    int n, m, x, c, a, b;
    f >> n >> m;

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

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

        if (c == 0)
            Add(a, -b);
        else if (c == 1)
            g << sum(b) - sum(a - 1) << '\n';
    }

    f.close();
    g.close();

    return 0;
}