Cod sursa(job #3309844)

Utilizator Benjamin4321234Benjamin Secara Benjamin4321234 Data 9 septembrie 2025 18:10:16
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;

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

int v[15001],aib[15001],n,m,op,a,b;

void update(int pos, int val){
    while(pos<=n){
        aib[pos]+=val;
        pos+=pos&(-pos);
    }
}

int query(int a, int b){
    if(a!=1){
        return query(1,b)-query(1,a-1);
    }
    int suma=0,pos=b;
    while(pos>0){
        suma+=aib[pos];
        pos-=pos&(-pos);
    }
    return suma;
}

int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++){
        fin>>v[i];
        update(i,v[i]);
    }
    for(int i=1;i<=m;i++){
        fin>>op>>a>>b;
        if(op==0){
            update(a,-b);
        }
        else{
            fout<<query(a,b)<<'\n';
        }
    }

    return 0;
}