Cod sursa(job #3328693)

Utilizator RaresHonourRares Herinean RaresHonour Data 9 decembrie 2025 17:49:47
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cmath>

using namespace std;

ifstream cin("datorii.in");
ofstream cout("datorii.out");

const int nmax = 15e3;
const int bmax = 150;

int v[nmax + 1];
int batog[bmax + 1];

int main() {
    int n, m, i;
    int op, a, b, k, sum;
    cin >> n >> m;
    int len = sqrt(n);
    for (i = 0; i < n; i++) {
        cin >> v[i];
        batog[i / len] += v[i];
    }
    for (k = 0; k < m; k++) {
        cin >> op >> a >> b;
        if (op == 0) {
            a--;
            v[a] -= b;
            batog[a / len] -= b;
        }
        else {
            a--;
            b--;
            sum = 0;
            while (a <= b and a % len != 0) {
                sum += v[a];
                a++;
            }
            while (a + len - 1 <= b) {
                sum += batog[a / len];
                a += len;
            }
            while (a <= b) {
                sum += v[a];
                a++;
            }
            cout << sum << "\n";
        }
    }
    return 0;
}