Cod sursa(job #2193215)

Utilizator Rodik_RodyRodica Vasilescu Rodik_Rody Data 9 aprilie 2018 13:07:57
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n, m, AIB[15001];
void Add(int poz, int quantity)
{
    for(; poz<=n; poz+=poz&-poz)
        AIB[poz] += quantity;
}
int Compute(int poz)
{
    int sum = 0;
    for(; poz>0; poz-=poz&-poz)
        sum += AIB[poz];
    return sum;
}
int main()
{
    in >>n >>m;
    for( int i = 1; i <= n; i++)
    {
        int x;
        in >>x;
        Add(i,x);
    }
    while( m-- )
    {
        int q, x, y;
        in >>q >>x >>y;
        if(q)
            out<<Compute(y) - Compute(x-1)<<endl;
        else
            Add(x, -y);
    }
    return 0;
}