Cod sursa(job #1743057)

Utilizator Y0da1NUME JMECHER Y0da1 Data 17 august 2016 15:12:10
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;
unsigned int BIT[15002], n, m;
int op, a, b;
void update(int val, unsigned int pos)
{
    for(; pos <=n; pos+=pos&-pos)
        BIT[pos]+=val;
}
unsigned int sum(unsigned int x)
{
    unsigned int sum;
    for(; x; x-=x&-x)
        sum+=BIT[x];
    return sum;
}
int main ()
{
    ifstream input ("datorii.in");
    ofstream output ("datorii.out");
    input >> n>>m;
    for (int i=1;i<=n;++i)
    {
        input>>a;
        update(a, i);
    }
    for(int i=0;i<m;++i)
    {
        input>>op>>a>>b;
        if(!op)
        {
            update(-b, a);
        }
        else
        {
            output<<sum(b)-sum(a-1)<<"\n";
        }
    }

    input.close();
    output.close();
    return 0;
}