Cod sursa(job #3321875)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 11 noiembrie 2025 15:28:17
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
//
//  main.cpp
//  Datorii AIB
//
//  Created by Andrada Minca on 11.11.2025.
//

#include <fstream>
#include <vector>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
vector<long long> aib;
int lsb(int x)
{
    return (x&(-x));
}
void update(int x,int add)
{
    for(int i=x;i<aib.size();i+=lsb(i))
    {
        aib[i]+=add;
    }
}
long long query(int x)
{
    long long sum=0;
    for(int i=x;i>0;i-=lsb(i))
    {
        sum+=aib[i];
    }
    return sum;
}
int main()
{
    int n,m;
    cin>>n>>m;
    aib.resize(n+1);
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        update(i,x);
    }
    for(int i=1;i<=m;i++)
    {
        int c;
        cin>>c;
        if(c==0)
        {
            int t,v;
            cin>>t>>v;
            update(t,-v);
        }
        else
        {
            int p,q;
            cin>>p>>q;
            cout<<query(q)-query(p-1)<<'\n';
        }
    }
    return 0;
}