Cod sursa(job #1260167)

Utilizator dinuvldVlad Dinu dinuvld Data 10 noiembrie 2014 22:42:16
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
int aib[15005], n;

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

int query(int poz)
{
    int s = 0;
    for (; poz <= n; poz -= poz & (poz - 1) ^ poz)
        s += aib[poz];
    return s;
}

int main()
{
        int m, x, a, b, c, i;
        ifstream cin ("datorii.in");
        ofstream cout ("datorii.out");
        cin >> n >> m;
        for (i=1; i<=n; i++)
        {
            cin >> x;
            update (i, x);
        }

        for (i=1; i<=n; i++)
        {
            cin >> a >> b >> c;
            if (a)
                cout << query (c) - query (b-1) << "\n";
            else
                update (b, -c);
        }
}