Cod sursa(job #2053041)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 31 octombrie 2017 13:09:04
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

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

int n, m, x, p, q, aib[15002], tip;

void update(int nod, int val){
    for(; nod <= n; nod += (nod & -nod))
        aib[nod] += val;
}

int query(int nod){
    int s = 0;
    for(; nod; nod -= (nod & -nod))
        s += aib[nod];
    return s;
}

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

    for(int i = 1; i <= m; ++ i){
        f>>tip>>p>>q;
        if(!tip){
            update(p, q);
        }
        else{
            g<<-(query(q) - query(p - 1))<<"\n";
        }
    }

    return 0;
}