Cod sursa(job #1205791)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 8 iulie 2014 09:36:39
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<cstdio>
int a[15005],aib[15005];
int main()
{
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);
    int n,m,i,j,c,t,v,s;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	scanf("%d",&a[i]);
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j=j+(j&(-j)))
		aib[j]=aib[j]+a[i];
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%d",&c,&t,&v);
		if(c==0)
		{
			for(j=t;j<=n;j=j+(j&(-j)))
			aib[j]=aib[j]-v;
		}
		else
		{
			s=0;
			for(j=v;j>0;j=j-(j&(-j)))
			s=s+aib[j];
			for(j=t-1;j>0;j=j-(j&(-j)))
			s=s-aib[j];
			printf("%d\n",s);
		}
	}
    return 0;
}