Cod sursa(job #2626330)

Utilizator Gradinaru_StefanStef 2 Gradinaru_Stefan Data 6 iunie 2020 13:33:17
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define MAXN 60001

using namespace std;

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


int n,v[MAXN],m;

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 nr, op, x,y;

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

    while(m--) {
        f >> op;
        if (op == 0)
        {
            f>>x>>y;

            update (x, - y);}
        else{
                f>>x>>y;
            g<<  suma(y) - suma(x - 1) <<endl;
    }

    }
    return 0;
}