Cod sursa(job #3288463)

Utilizator ItsHezovPahonie George Alessio ItsHezov Data 22 martie 2025 14:16:40
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
const int mxN = 15000;
int aib[mxN+1];
int n , m;
int ub(int x)
{
    return (x & (-x));
}
void add(int poz, int val)
{
    for(int i = poz;i<=n;i+=ub(i))
        aib[i]+=val;
}
int sum(int poz)
{
   int sol = 0;
   for(int i = poz;i>0;i-=ub(i))
        sol+=aib[i];
   return sol;
}
int sum(int l, int r)
{
    return sum(r) - sum(l-1);
}
int main()
{
    int x;
    cin >> n >> m;
    for(int i = 1;i<=n;i++)
        cin>>x,add(i,x);
    for(int i = 1;i<=m;i++)
    {
        int op, a, b;
        cin >> op >> a >> b;
        if(op == 0)
        {
            add(a,-b);
        }
        if(op == 1)
        {
            cout << sum(a,b) << '\n';
        }
    }
    return 0;
}