Cod sursa(job #3247140)

Utilizator Tudor_CCTudor Cocu Tudor_CC Data 5 octombrie 2024 19:30:20
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>

using namespace std;

unsigned long long n,k,t,x,y,v[15005],val;

void up(int in,int val)
{
    while(in<=n)
    {
        v[in]=v[in]-val;
        in+=in&(-in);
    }
}

unsigned long long sp(int in)
{
    unsigned long long sum=0;
    while(in>0)
    {
        sum+=v[in];
        in-=in&(-in);
    }
    return sum;
}

unsigned long long sm(int st,int dr)
{
    return sp(dr)-sp(st-1);
}

int main()
{
    ifstream cin("datorii.in");
    ofstream cout("datorii.out");
    cin>>n>>k;
    for(int i=1;i<=n;++i)
    {
        cin>>x;
        up(i,-x);
    }
    for(int i=1;i<=k;++i)
    {
        cin>>t>>x>>y;
        if(t==0)
        {

            up(x,y);
        }
        else
        {
            cout<<sm(x,y)<<"\n";
        }
    }
    return 0;
}