Cod sursa(job #3176759)

Utilizator MCHARDChirila Marian Avram MCHARD Data 27 noiembrie 2023 18:42:43
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int N = 15000;
int AIB[N+10], n, m;

void ADD(int poz, int v){
    for(int i = poz; i <= n; i+= i&(-i))
        AIB[i] += v;
}
int SUM(int poz){
    int s = 0;
    for(int i = poz; i > 0; i -= i & (-i))
        s += AIB[i];
    return s;
}

int main()
{
    f >> n >> m;
    for(int i=1, x; i<=n; i++){
        f >> x;
        ADD(i, x);
    }
    for(int i=1, c, x1, x2; i<=m; i++){
        f >> c >> x1 >> x2;
        if(!c)  ADD(x1, -x2);
        else g << SUM(x2) - SUM(x1-1) << '\n';
    }
    f.close();
    g.close();

    return 0;
}