Cod sursa(job #2999507)

Utilizator raileanu-alin-gabrielRaileanu Alin-Gabriel raileanu-alin-gabriel Data 11 martie 2023 09:37:40
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
const int NMAX=100005;

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

int aib[NMAX];
int n, q, nr;


int query(int);
void update(int, int);

int main()
{
    int i, tip, val, poz, st, dr;
    fin>>n>>q;
    for(i=1; i<=n; i++)
    {
        fin>>nr;
        update(i, nr);
    }
    for(i=1; i<=q; i++)
    {
        fin>>tip;
        if(tip==0)
        {
            fin>>poz>>val;
            update(poz, -val);
        }
        else
        {
            fin>>st>>dr;
            fout<<query(dr)-query(st-1)<<'\n';
        }
    }
    return 0;
}

int query(int poz)
{
    int sum=0, i;
    for(i=poz; i>0; i-=i&(-i)) sum+=aib[i];
    return sum;
}

void update(int poz, int val)
{
    int i;
    for(i=poz; i<=n; i+=i&(-i)) aib[i]+=val;
}