Cod sursa(job #2108296)

Utilizator karenalo13Diaconu Iulian Andrei karenalo13 Data 18 ianuarie 2018 02:33:17
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream fin ("datorii.in");
ofstream fout ("datorii.out");

int n,m,p,q,t,val,A[15001],x,op;

void update(int p, int val)
{
    for (int i=p; i<=n; i+=(i&-i))
        A[i] += val;
}
int query(int p)
{
    int sol = 0;
    for (int i=p; i>=1; i-=(i&-i))
        sol += A[i];
    return sol;
}

int main ()
{
    fin >> n >> m;
    for (int i=1; i<=n; i++)
    {
        fin >> x;
        update(i, x);
    }
    for (;m--;)
    {
        fin >> op;
        if (op == 0)
        {
            fin >> t >> val;
            update(t, -val);
        }
        else
        {
            fin >> p >> q;
            fout << query(q)-query(p-1) << "\n";
        }
    }
    return 0;
}