Cod sursa(job #1247079)

Utilizator tunetuTnT. B. tunetu Data 22 octombrie 2014 01:17:28
Problema Datorii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <malloc.h>

int main()
{
	int *n, *m, *suma, *bitOperatie, *p, *q, a[15000], i, j; 
	FILE *f = fopen("datorii.in","r");
	FILE *g = fopen("datorii.out","w");

	n = (int*)malloc(sizeof(int));
	m = (int*)malloc(sizeof(int));

	fscanf(f,"%d %d",n,m);

	for (i=0;i<*n;i++)
	{
		fscanf(f,"%d",&a[i]);
	}

	free(n);

	for (i=1;i<=*m;i++)
	{
		bitOperatie = (int*)malloc(sizeof(int));
		p = (int*)malloc(sizeof(int));
		q = (int*)malloc(sizeof(int));

		fscanf(f,"%d %d %d",bitOperatie,p,q);

		if (*bitOperatie == 1)
		{
			suma = (int*)malloc(sizeof(int));
			*suma = 0;

			for (j=*p-1;j<=*q-1;j++)
			{
				*suma+=a[j];
			}
			fprintf(g,"%d\n",*suma);
			free(suma);
			suma = NULL;
		}
		else
		{
			a[*p-1]-=*q;
		}

		free(bitOperatie);
		free(p);
		free(q);
	}

	free(m);

	fclose(f);
	fclose(g);

	return 0;
}