Cod sursa(job #2828767)

Utilizator fanevodaCalota Stefan fanevoda Data 7 ianuarie 2022 22:52:09
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

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

int aib[15005];
int n, x, y, c, m;
int suma(int x)
{
    int s = 0;
    for (int i = x; i > 0; i -= (i & -i))
        s += aib[i];
    return s;
}

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

int main()
{
    in >> n >> m;

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

    for (int i = 1; i <= m; i++)
    {
        in >> c >> x >> y;
        if (c == 0) {
            adaugavaloare(x, -y);
        }
        else
            out << (suma(y) - suma(x - 1)) << "\n";
    }
    return 0;
}