Cod sursa(job #2445001)

Utilizator butnaru_vlad2003Butnaru Vlad butnaru_vlad2003 Data 2 august 2019 10:45:52
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
int v[15001],aib[15001];
ifstream in ("aib.in");
ofstream out ("aib.out");
void update(int nod,int last,int value)
{
    for(int i=nod;i<=last;i+=(i&(-i)))
        aib[i]+=value;
}
int query (int nod)
{
    int sum=0;
    for (int i=nod;i;i-=(i&(-i)))
        sum+=aib[i];
    return sum;
}
int main()
{
    int n,m;
    in>>n>>m;
    for (int i=1;i<=n;++i)
    {
        in>>v[i];
        update(i,n,v[i]);
    }
    for (int i=1;i<=m;++i)
    {
        int caz;
        in>>caz;
        if (caz==0)
        {
            int t,v;
            in>>t>>v;
            update(t,n,-v);
        }
        else
        {
            int a,b;
            in>>a>>b;
            out<<query(b)-query(a-1)<<'\n';
        }
    }
    return 0;
}