Cod sursa(job #3185686)

Utilizator Tudor.1234Holota Tudor Matei Tudor.1234 Data 19 decembrie 2023 21:12:57
Problema Arbori indexati binar Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    ifstream fin("aib.in");
    ofstream fout("aib.out");

    int N, M;
    fin >> N >> M;

    vector<int> A(N);
    for (int i = 0; i < N; ++i) {
        fin >> A[i];
    }

    while (M--) {
        int op, a, b;
        fin >> op;

        if (op == 0) {
            fin >> a >> b;
            A[a - 1] += b;
        } else if (op == 1) {
            fin >> a >> b;
            long long sum = 0;
            for (int i = a - 1; i < b; ++i) {
                sum += A[i];
            }
            fout << sum << "\n";
        } else if (op == 2) {
            fin >> a;
            long long sum = 0;
            int k = -1;
            for (int i = 0; i < N; ++i) {
                sum += A[i];
                if (sum == a) {
                    k = i + 1;
                    break;
                }
            }
            fout << k << "\n";
        }
    }

    fin.close();
    fout.close();

    return 0;
}