Cod sursa(job #2370156)

Utilizator MichaelXcXCiuciulete Mihai MichaelXcX Data 6 martie 2019 10:55:33
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include    <bits/stdc++.h>

#define     NMAX 150010

using namespace std;

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

int n, m, t, v, p, q, b;
int a[NMAX];

void add(int pos, int val)
{
    while(pos <= n)
    {
        a[pos] += val;
        pos += pos&(-pos);
    }
}

int query()
{
    int sol=0;
    while(q>0)
    {
        sol += a[q];
        q -= q&(-q);
    }
    p--;
    while(p>0)
    {
        sol -= a[p];
        p -= p&(-p);
    }
    return sol;
}

int main()
{
    fin >> n >> m;

    for(int i = 1; i<= n; i++)
    {
        fin >> p;
        add(i, p);
    }

    for(int i = 1; i <= m; i++)
    {
        fin >> b >> p >> q;
        if(b == 0)
            add(p, -q);
        else
            fout << query() << "\n";
    }
    return 0;
}