Cod sursa(job #1691439)

Utilizator savulescustefanSavulescu Stefan savulescustefan Data 18 aprilie 2016 13:02:26
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>

using namespace std;
int x,y,i,c,n,m,a[15004],z;
void e (int y,int x)
{
    int i;
    for (i=y;i<=n;i+=(i&(-i)))
        a[i]+=x;
}
int d (int x)
{
    int i,s;
    s=0;
    for (i=x;i>=1;i-=(i&(-i)))
        s+=a[i];
    return s;
}
int main()
{
    freopen ("datorii.in","r",stdin);
    freopen ("datorii.out","w",stdout);
    scanf ("%d %d", &n, &m);
    for (i=1;i<=n;i++)
    {
        scanf ("%d", &x);
        e(i,x);
    }
    for (i=1;i<=m;i++)
    {
        scanf ("%d", &c);
        if (c==0)
        {
            scanf ("%d %d", &x, &y);
            y=-y;
            e(x,y);
        }
        else
        {
            scanf ("%d %d", &x, &y);
            printf ("%d\n", d(y)-d(x-1));
        }
    }
    return 0;
}