1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>

int main()
{
long long M,N,i,j,*a,*f,d,b,pd,S;

	scanf("%lld %lld",&N,&M);
//	printf("%lld %lld\n",N,M);

	a = (long long) malloc(N*sizeof(long long));
	f = (long long) malloc(N*sizeof(long long));
	for (i = 0; i < N; i++)
		scanf("%lld",a+i);

	for (i = 0; i < N; i++) f[i] = 0; //field
	pd = 0;
	for (i = 0; i < M; i++)
	{
		S = 0;
		scanf("%lld %lld",&d,&b);
		//grow
		for (j = 0; j < N; j++) f[j] += (d-pd)*a[j];
		pd = d;
		//cut
		for (j = 0; j < N; j++)
		{
			if (f[j] > b)
			{
				S += f[j] - b;
				f[j] = b;
			}
		}
		printf("%lld\n",S);
	}

	free(a);
	free(f);

	return 0;
}