Cod sursa(job #1508517)

Utilizator pufstarDragos Gheorghiu pufstar Data 22 octombrie 2015 17:54:23
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;
ifstream f("datorii.in"); ofstream g("datorii.out");
int n, nr, AIB[15010];
int Zero(int x)
{
    return (-x)&x;
}
void Update(int poz, int val)
{
    for(; poz<=n; poz+=Zero(poz)) AIB[poz]+=val;
}
int Calc(int poz)
{
    int s=0;
    for(; poz; poz-=Zero(poz)) s+=AIB[poz];
    return s;
}
int main()
{
    f>>n>>nr;
    for(int v, i=1; i<=n; i++)
    {
        f>>v; Update(i, v);
    }
    int t, a, b;
    while(nr--)
    {
        f>>t>>a>>b;
        if(t) g<<Calc(b)-Calc(a-1)<<'\n'; else Update(a, -b);
    }
    return 0;
}