Cod sursa(job #2530945)

Utilizator Rares31100Popa Rares Rares31100 Data 25 ianuarie 2020 14:55:41
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,m;
int tree[15001];

void adauga(int poz,int val)
{
    while(poz<=n)
    {
        tree[poz]+=val;
        poz+=poz&(-poz);
    }
}

int sum(int poz)
{
    int sol=0;

    while(poz)
    {
        sol+=tree[poz];
        poz-=poz&(-poz);
    }

    return sol;
}

int main()
{
    in>>n>>m;

    for(int i=1,val;i<=n;i++)
    {
        in>>val;
        adauga(i,val);
    }

    for(int c,a,b,k=1;k<=m;k++)
    {
        in>>c>>a>>b;

        if(c==0)
            adauga(a,-b);
        else
            out<<sum(b)-sum(a-1)<<'\n';
    }

    return 0;
}