Cod sursa(job #3330112)

Utilizator ceezarGrecu Cezar Gabriel ceezar Data 17 decembrie 2025 16:49:26
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <iostream>



using namespace std;

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

int aib[15001], n, m;

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

int Sum(int pos)
{
    int s=0;
    for(; pos>0; pos-= (pos & -pos))
        s+=aib[pos];

    return s;
}

void citire()
{
    fin>>n>>m;
    for(int i=1;i<=n;++i)
    {
        int x;
        fin>>x;
        Update(i,x);
    }

    for(int i=1;i<=m;++i)
    {
        int op,x,y;
        fin>>op>>x>>y;
        if(op==0)
            Update(x,-y);
        else
            fout<<Sum(y)-Sum(x-1)<<'\n';
    }
}

int main()
{
    citire();
    return 0;
}