Cod sursa(job #429453)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 30 martie 2010 10:20:06
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>

FILE *f,*s;

int m,n,p,a,b,c,i,j,v[15010];

int main()
{
	f=fopen("datorii.in","r");
	s=fopen("datorii.out","w");
	
	fscanf(f,"%d %d",&n,&m);
	
	for(i=1;i<=n;i++)
	{
		fscanf(f,"%d",&p);
		
		for(j=i;j<=n;j+=((j^(j-1))&j))
			v[j]+=p; 
	}	
	
	for(i=1;i<=m;i++)
	{
		fscanf(f,"%d %d %d",&a,&b,&c);
		
		if(a==0)
		{
			for(j=b;j<=n;j+=((j^(j-1))&j))
				v[j]-=c;
		}	
		else
		{
			int k=0;
			
			for(j=c;j>0;j-=((j^(j-1))&j))
				k+=v[j];
			
			for(j=b-1;j>0;j-=((j^(j-1))&j))
				k-=v[j];
			
			fprintf(s,"%d\n",k);
		}	
	}	
	
	fclose(s);
	
	return 0;
}