Cod sursa(job #3229154)

Utilizator tonealexandruTone Alexandru tonealexandru Data 14 mai 2024 09:23:27
Problema Arbori indexati binar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;
int aib[200005],n;

int lsb(int a)
{
    return (a & -a);
}

void update(int x, int a)
{
    for(int i=x;i<=n;i+=lsb(i))
        aib[i]=a;
}

int calc(int x)
{
    int s=0;
    for(int i=x;i>=0;i-=lsb(i))
        s+=aib[i];
    return s;
}

int main()
{
    ifstream cin("aib.in");
    ofstream cout("aib.out");
    int a,q;
    cin>>n>>q;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        update(i, a);
    }

    int op,b;
    for(int i=0;i<q;i++)
    {
        cin>>op>>a>>b;
        if(op==0) cout<<calc(b)-calc(a-1);
        else if(op==1) update(a, b);
    }

    return 0;
}