Cod sursa(job #2640701)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 7 august 2020 15:56:54
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

long long tree[15001],n;

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

void add(int pos,long long val)
{
    while (pos<=n)
        tree[pos]+=val,pos+=pos&-pos;
}

long long cumFreq(int a)
{
    long long sum=0;
    while (a)
        sum+=tree[a],a-=a&-a;
    return sum;
}

int main()
{
    int k,a,b,c;
    in>>n>>k;
    for (int i=1;i<=n;i++)
    {
        in>>a;
        add(i,a);
    }
    for (int i=1;i<=k;i++)
    {
        in>>a>>b>>c;
        if (a)
            out<<cumFreq(c)-cumFreq(b-1)<<'\n';
        else 
            add(b,-c);
    }
    return 0;
}