Cod sursa(job #3224496)

Utilizator NiffSniffCojocaru Calin Marcu NiffSniff Data 15 aprilie 2024 15:21:31
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <iostream>
using namespace std;
string file = "datorii";
ifstream fin (file + ".in");
ofstream fout (file + ".out");

int aib[15001],n,m,v[15001];


int interogare(int p)
{
    int s(0);
    while (p)
    {
        s += aib[p];
        p -= (p & -p);
    }
    return s;
}

void modificare(int p, int val)
{
    do
    {
        aib[p] -= val;
        p += (p&-p);
    }while (p <= n);
}

void citire()
{
    int x;
    fin >> n >> m;
    for (int i=1; i<=n; i++)
    {
        fin >> x;
        for (int p = i; p <= n; p += (p & -p))
        {
            aib[p] += x;
        }
    }
}

void querries()
{
    bool op;
    int x,y;
    while (m--)
    {
        fin >> op >> x >> y;
        if (op)
        {
            fout << interogare(y) - interogare(x-1) << '\n';
        }
        else
        {
            modificare(x,y);
        }
    }
}
int main()
{
    citire();
    querries();
}