Cod sursa(job #2626054)

Utilizator Gradinaru_StefanStef 2 Gradinaru_Stefan Data 6 iunie 2020 11:37:59
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>

using namespace std;

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


int n,v[15001];

int Tr(int x)
{
    return x & (-x);
}

void update(int is, int val)
{
    for (int i =is; i <= n; i += Tr(i))
        v[i] += val;
}

int suma (int is)
{
    int s = 0;
    for (int i = is; i > 0; i -=Tr(i))
        s += v[i];
    return s;
}



int main() {

    int m, nr, op, x,y;

    f >> n>> m;
    for (int i = 1; i <= n; ++i){
        f >> nr;
        update(i, nr);
    }

    for (int i=0; i < m; i++) {
        f >> op >> x >> y;
        if (op == 0)
            update (x, - y);
        if (op == 1)
            g<<  suma(y) - suma(x - 1) <<endl;
    }
    f.close();
    g.close();

    return 0;
}