Cod sursa(job #2803724)

Utilizator Andy_ANDYSlatinaru Andrei Alexandru Andy_ANDY Data 20 noiembrie 2021 13:06:43
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
#define ll long long
//#define int ll
using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");


int n,q,arb[15005];

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

int query(int poz)
{   int ans=0;
    for(int i=poz;i>0;i-=(i&(-i)))
    {
        ans+=arb[i];
    }
    return ans;
}


int main()
{
    f>>n>>q;
    for(int i=1;i<=n;i++)
    {
        int x;
        f>>x;
        update(i,x);
    }

    for(;q--;)
    {
        int op;
        f>>op;

        if(op==0)
        {
            int a,b;
            f>>a>>b;
            update(a,-b);
        }
        else
        {
            int a,b;
            f>>a>>b;
            g<< query(b)-query(a-1)<<'\n';
        }
    }





    return 0;

}