Cod sursa(job #1497106)

Utilizator ipus1Stefan Enescu ipus1 Data 6 octombrie 2015 08:23:04
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
int v[15001];
int main ()
{freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
int n,m,i,j,k,x,p,s;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
    {scanf("%d",&x);
    j=i;
    while(j<=n)
        {v[j]+=x;
        j+=(j&(-j));
        }
    }
for(i=1;i<=m;i++)
    {scanf("%d%d%d",&p,&k,&x);
    if(p==0)
        while(k<=n)
            {v[k]-=x;
            k+=(k&(-k));
            }
    else
        {s=0;
        while(x>0)
            {s+=v[x];
            x-=(x&(-x));
            }
        k--;
        while(k>0)
            {s-=v[k];
            k-=(k&(-k));
            }
        printf("%d\n",s);
        }
    }
return 0;
}