Cod sursa(job #2904295)

Utilizator NefelibataAnton Marius Alexandru Nefelibata Data 17 mai 2022 22:54:17
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("datorii.in");
ofstream o("datorii.out");
int n, m, c, v[15002];

void update(int i, int x)
{
    for (i; i < n + 1; i+=(i^(i-1))&i) {
        v[i] += x;
    }
}
int sum(int i)
{   int s = 0;
    for (i; i; i-=(i^(i-1))&i) {
        s += v[i];
    }
    return s;
}
int main()
{
    int a, b;
    f >> n >> m;
    for (int i = 1; i <= n; i++)
    {   f >> a;
        update (i, a);
    }
    for (m; m > 0; m--)
    {   f>>c>>a>>b;
        if (c == 0) update (a, (-1)*b);
        else o << sum(b) - sum(a-1) << '\n';
    }
    return 0;
}