Cod sursa(job #2919330)

Utilizator Luca_CristianZamfir Luca-Cristian Luca_Cristian Data 16 august 2022 19:09:35
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>


using namespace std;

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


int aib[500001];
int n;
int endzero(int x)
{
    return (x & (-x));
}
int add(int x, int cant)
{
    int i;
    for(i = x; i <= n; i += endzero(i))
        aib[i] -= cant;
}
int compute(int x)
{
    int i, ret = 0;
    for(i = x; i > 0; i -= endzero(i))
        ret += aib[i];
    return ret;
}


int main()
{
    int q, i;

    fin >> n >> q;

    int x;
    for(i = 1; i <= n; i++)
        fin >> x , add(i, -x);

    for(i = 0; i < q; i++)
    {
        int tip, a, b;
        fin >> tip >> a >> b;

        if(tip == 0)
            add(a, b);
        else
            fout << compute(b) - compute(a - 1) << '\n';
    }

    return 0;
}