Cod sursa(job #3133597)

Utilizator dariutTache Daria dariut Data 26 mai 2023 11:27:31
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;


int a, b, c, n, m, x, d[1000001];

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

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

int main()
{
    ifstream fin("datorii.in");
    ofstream fout("datorii.out");

    fin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        fin >> x;
        update(i, x);
    }
    for (int i = 1; i <= m; i++)
    {
        fin >> c >> a >> b;
        if (c == 0)
        {
            update(a, -b);
        }
        if (c == 1)
        {
            fout << query(b) - query(a - 1) << "\n";
        }
    }
    return 0;
}