Cod sursa(job #3134256)

Utilizator adelibdAdel Ib adelibd Data 28 mai 2023 20:14:38
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>

//std::ifstream fin("C:\\Users\\DelMX\\OneDrive\\Sharing\\tema-sd-3\\datorii.in");
//std::ofstream fout("C:\\Users\\DelMX\\OneDrive\\Sharing\\tema-sd-3\\datorii.out");
std::ifstream fin("datorii.in");
std::ofstream fout("datorii.out");
int n, m, x;
int v[15000];
int main() {

    fin >> n >> m;
    for (int i = 0; i < n; ++i) {
        fin >> x;

        int p = i + 1;
        while (p <= n) {
            v[p] += x;
            p += (p&(-p));
        }
    }
    for (int i = 0; i < m; ++i) {
        int a, b;
        fin >> x >> a >> b;
        if (x == 0) {
            while (a <= n) {
                v[a] += -b;
                a += (a&(-a));
            }
        }
        else {
            int s1 = 0, s2 = 0;
            while (b > 0) {
                s1 += v[b];
                b -= (b&(-b));
            }
            a--;
            while (a > 0) {
                s2 += v[a];
                a -= (a&(-a));
            }
//            std::cout << s1 - s2 << "\n";
            fout << s1 - s2 << "\n";
        }
    }

    return 0;
}