Cod sursa(job #674117)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 5 februarie 2012 16:43:29
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#define Nmax 15009

int n,t,i,x,y,type,a[Nmax];

void insert(int x,int y)
{
    while (x<=n)
    {
        a[x]+=y;
        x+=x&(x^(x-1));
    }
}

int query(int x)
{
    int s=0;

    while (x)
    {
        s+=a[x];
        x-=x&(x^(x-1));
    }
    return s;
}

int main()
{
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);

    scanf("%d%d",&n,&t);
    for (i=1;i<=n;i++)
    {
        scanf("%d",&x);
        insert(i,x);
    }

    for (i=1;i<=t;i++)
    {
        scanf("%d%d%d",&type,&x,&y);
        if (!type) insert(x,-y);
            else printf("%d\n",query(y)-query(x-1));
    }
}