Cod sursa(job #3223117)

Utilizator Ionut2145Petre Ionut Ionut2145 Data 12 aprilie 2024 14:41:39
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#define zeros(x) ( ( x&(-x)))

using namespace std;

int n, a[100005], k, aib[100005], q, x, poz, val, t,y;
char c;

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

void Add(int x, int val)
{
    int i;
    for (i = x; i <= n; i += zeros(i))
        aib[i]+=val;
}

void Add2(int x, int val)
{
    int i;
    for (i = x; i <= n; i += zeros(i))
        aib[i]-=val;
}

int sum(int x)
{
    int i, ret = 0;
    for (i = x; i > 0; i -= zeros(i))
        ret += aib[i];
    return ret;
}

int main()
{
    f >> n >> q;
    for(int i=1; i<=n; i++)
    {
        f >> a[i];
        Add(i, a[i]);
    }
    for(int i=1; i<=q; i++)
    {
        f >> t >> x >> y;
        if(t==0) Add2(x, y);
        else g << sum(y)-sum(x-1) << '\n';
    }
}