Cod sursa(job #2875244)

Utilizator alexmorosanuMorosanu Alexandru alexmorosanu Data 21 martie 2022 12:38:42
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define zeros(x) (x^(x-1)&x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int a[15011],n;
void update(int k,int val)
{
    while(k<=n)
    {
        a[k]=a[k]+val;
        k=k+zeros(k);
    }
}
int query(int k)
{
    int s=0;
    while(k>0)
    {
        s=s+a[k];
        k=k-zeros(k);
    }
    return s;
}
int p,i,x,y,C;
int main()
{
    f>>n>>p;
    for(i=1;i<=n;i++)
    {
        f>>x;
        update(i,x);
    }
    for(i=1;i<=p;i++)
    {
        f>>C>>x>>y;
        if(C==0)
            update(x,-y);
        else
            g<<query(y)-query(x-1)<<'\n';
    }
    return 0;
}