Cod sursa(job #2010592)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 13 august 2017 18:13:40
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<bits/stdc++.h>
#define Nmax 15001
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,i,op,x,y;
int AIB[Nmax];
void update(int i,int val)
{
    while(i<=n)
    {
        AIB[i]+=val;
        i+=(i&(-i));
    }
}
int query(int i)
{
    int sum=0;
    while(i>=1)
    {
        sum+=AIB[i];
        i-=(i&(-i));
    }
    return sum;
}
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>x;
        update(i,x);
    }
    for(;m;--m)
    {
        f>>op>>x>>y;
        if(!op)
            update(x,-y);
        else
            g<<query(y)-query(x-1)<<'\n';
    }
    return 0;
}