Cod sursa(job #2907122)

Utilizator maiaauUngureanu Maia maiaau Data 28 mai 2022 20:47:49
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");

int n, m, zero[15001], aib[15001], x, y, c;

void add(int, int);
int compute(int);

int main()
{
    f >> n >> m;

    for (int i = 1; i <= n; i++) zero[i] = (i ^ (i - 1) & i);

    for (int i = 1; i <= n; i++){
        f >> x;
        add(i, x);
    }

    for (int i = 1; i <= m; i++){
        f >> c >> x >> y;
        if(c) g << compute(y) - compute(x - 1) << '\n';
        else add(x, -y) ;
    }


    return 0;
}

void add(int poz, int tot){
    for (int i = poz; i <= n; i+= zero[i])
        aib[i] += tot;
}

int compute(int poz)
{
    int rez = 0;
    for (int i = poz; i; i -= zero[i])
        rez += aib[i];
    return rez;

}