Cod sursa(job #1320749)

Utilizator MacWonkMihai Alexandru Cosmin MacWonk Data 18 ianuarie 2015 14:21:07
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define LSB(x) ( (-x)&x )
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,i,x,cod,t,v,p,q;
int c[15005];
void update(int poz, int val)
{
    int i;
    for(i=poz;i<=n;i+=LSB(i))
    {
        c[i]+=val;
    }
}
int sum(int poz)
{
    int i,s;
    s=0;
    for(i=poz;i>=1;i-=LSB(i))
    {
        s+=c[i];
    }
    return s;
}
int main()
{
    f>>n>>m;
    for(i=1;i<=n;++i)
    {
        f>>x;
        update(i,x);
    }
    for(i=1;i<=m;++i)
    {
        f>>cod;
        if(cod==0)
        {
            f>>t>>v;
            update(t,v*(-1));
        }
        else
        {
            f>>p>>q;
            g<<sum(q)-sum(p-1)<<'\n';
        }
    }
    return 0;
}