Cod sursa(job #3309578)

Utilizator calinarulMarinescu Calin calinarul Data 6 septembrie 2025 15:13:07
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMAX=16*1e3;
int v[NMAX],aib[NMAX];
int n,q;
void update(int poz,int val){for(int i=poz;i<=n;i+=(i&(-i)))aib[i]+=val;}
int compute(int poz){int ans=0;for(int i=poz;i>0;i-=i&(-i))ans+=aib[i];return ans;}
int sum(int st,int dr){return compute(dr)-compute(st-1);}
int main()
{
    fin>>n>>q;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        update(i,v[i]);
    }
    while ((q--))
    {
        int op,a,b;
        fin>>op>>a>>b;
        if(!op)update(a,-b); else fout<<sum(a,b)<<'\n';
    }
    
}