Cod sursa(job #2963129)

Utilizator AleXutzZuDavid Alex Robert AleXutzZu Data 10 ianuarie 2023 09:24:21
Problema Arbori indexati binar Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <vector>

int main() {
    std::ifstream input("aib.in");
    std::ofstream output("aib.out");
    int n, m;
    input >> n >> m;

    std::vector<int> v(n + 1);

    for (int i = 1; i <= n; ++i) {
        input >> v[i];
    }

    while (m--) {
        int q;
        input >> q;
        if (q == 0) {
            int a, b;
            input >> a >> b;
            v[a] += b;
        } else if (q == 1) {
            int a, b, s = 0;
            input >> a >> b;
            for (int i = a; i <= b; ++i) {
                s += v[i];
            }
            output << s << '\n';
        } else if (q == 2) {
            int a, s = 0;
            input >> a;
            int pos = 1;
            while (pos <= n && s != a) {
                if (pos > n) break;
                s += v[pos];
                pos++;
            }
            if (s == a) pos--;
            if (pos > n) pos = -1;
            output << pos << '\n';
        }
    }

    return 0;
}