Cod sursa(job #2509269)

Utilizator darisavuSavu Daria darisavu Data 14 decembrie 2019 08:58:48
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,a[15005],A,B,c,x;
void update(int x,int p)
{
    int i;
    for(i=p;i<=n;i+=i&(-i))
    {
        a[i]+=x;
    }
}
int suma(int p)
{
    int i,s=0;
    for(i=p;i>0;i-=i&(-i))
        s+=a[i];
    return s;
}
int main()
{
    int i;
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>x;
        update(x,i);
    }
    for(i=1;i<=m;i++)
    {
        f>>c>>A>>B;
        if(c==0) update(-B,A);
        else g<<suma(B)-suma(A-1)<<'\n';
    }
    return 0;
}