Cod sursa(job #2300834)

Utilizator cyg_ieeuVasile Radu-Andrei cyg_ieeu Data 12 decembrie 2018 10:21:48
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>

std::ifstream in("datorii.in");
std::ofstream out("datorii.out");

int aib[15005];
int n;

void update(int p,int val)
{
    for(;p <= n;p += p & -p)
        aib[p] += val;
}

int query(int p)
{
    int suma = 0;
    for(;p > 0;p -= p & -p)
        suma += aib[p];
    return suma;
}

int main()
{
    int m,x;
    in>>n>>m;
    for(int i = 1;i <= n;i++)
        in>>x,update(i,x);
    int tip,a,b;
    for(int i = 1;i <= m;i++)
    {
        in>>tip>>a>>b;
        if(tip == 0)
            update(a,-b);
        else if(tip == 1)
            out<<query(b) - query(a - 1)<<'\n';
    }
    return 0;
}