Cod sursa(job #3290743)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 31 martie 2025 19:26:18
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#define nl '\n'

using namespace std;

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

const int NMAX = 1e5+5;

int n, aib[NMAX];

void add(int i, int val)
{
    while (i <= n)
    {
        aib[i] += val;
        i += i & (-i);
    }
    return;
}

int sum(int i)
{
    int res = 0;
    while (i)
    {
        res += aib[i];
        i &= i-1;
    }
    return res;
}

int main()
{
    int t;
    fin >> n >> t;
    for (int i = 1; i <= n; i++)
    {
        int x;
        fin >> x;
        add(i, x);
    }
    while (t--)
    {
        int c, x, y;
        fin >> c >> x >> y;
        if (c == 0)
            add(x, -y);
        else
            fout << sum(y)-sum(x-1) << nl;
    }
    return 0;
}