Cod sursa(job #1043273)

Utilizator rucarRucareanu Alexandru rucar Data 28 noiembrie 2013 11:08:55
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

void update(int *v,int start,int s,int n)
{
    int i;
    for (i=start;i<=n;i++)
        v[i]-=s;
}

int main()
{
    int i, n, m, s, cod,p,q,t;
	FILE *f = fopen("datorii.in", "r"), *g = fopen("datorii.out", "w");
	fscanf(f, "%d%d", &n, &m);
	int *v = (int*)malloc(sizeof(int)*(n+10));
	for (i = 1; i <= n; i++)
	{
		fscanf(f, "%d", &v[i]);
	}
	int *sum=(int*)malloc(sizeof(int)*n);
	s=0;
	for (i=1;i<=n;i++)
    {
        s+=v[i];
        sum[i]=s;
    }
    for (i = 0; i < m; i++)
	{
		fscanf(f, "%d", &cod);
		if (cod)
		{
			fscanf(f, "%d%d", &p, &q);
			fprintf(g, "%d\n", sum[q]-sum[p-1]);
		}
		else
		{
			fscanf(f, "%d%d", &t, &s);
			update(sum,t,s,n);
		}
	}

}