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
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <stdio.h>
#include <vector>
#include <utility>

using namespace std;

int main(){
	long long area;
	long long numberOfCuts;
	scanf("%lld%lld", &area, &numberOfCuts);

	vector <long long> paceOfGrowth;
	vector <long long> currentHeights;
	for (int i = 0; i < area; ++i) {
		long long n = 0;
		scanf("%lld", &n);
		paceOfGrowth.push_back(n);
		currentHeights.push_back(0);
	}

	vector< pair<long long, long long> > cuts;
	for (int i = 0; i < numberOfCuts; i++) {
		long long d;
		long long b;
		scanf("%lld", &d);
		scanf("%lld", &b);
		cuts.push_back(make_pair(d, b));
	}

	long long previousDay = 0;
	long long day = 0;
	long long cutToHeight = 0;
	for (long long i = 0; i < numberOfCuts; ++i) {
	day = cuts[i].first - previousDay;
	previousDay = cuts[i].first;
	cutToHeight = cuts[i].second;
	long long sumaSiana = 0;
	for(long long j = 0; j < area; ++j){
		currentHeights[j] = currentHeights[j] + (paceOfGrowth[j] * day);
		if(currentHeights[j] - cutToHeight >= 0 ){
			sumaSiana += currentHeights[j] - cutToHeight;
			currentHeights[j] = cutToHeight;
		}
	}
	printf("%lld\n", sumaSiana);
	}
}