Cod sursa(job #2681066)

Utilizator luchiancristianLuchian Cristian luchiancristian Data 4 decembrie 2020 21:17:56
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,v[15010],a,b,o;
int suma(int poz)
{
    int r=0;
    for(;poz>=1;poz-=poz&(-poz))
        r+=v[poz];
    return r;
}
void adn(int poz,int b)
{
    for(;poz<=n;poz+=poz&(-poz))
        v[poz]+=b;
    return;
}
int main()
{
    in>>n>>m;
    for(int i=1;i<=n;++i)
    {
        in>>v[i];
        v[i]+=suma(i-1)-suma(i-(i&(-i)));
    }
    for(int y=1;y<=m;++y)
    {
        in>>o>>a>>b;
        if(o==0)
            adn(a,-b);
        else
            out<<suma(b)-suma(a-1)<<'\n';
    }
    return 0;
}