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
#include <iostream>
using namespace std;
long long pole[500005], wysokosc[500005];
int main()
{
	ios_base::sync_with_stdio(0);      //magiczna linijka
	int poletko, skoszenia;
	cin >> poletko >> skoszenia;
	for(int i=0; i<poletko; i++)
	{
		cin >> pole[i];
	}
	long long poprzednie_koszenie;
	poprzednie_koszenie=0;
	for(int i=0; i<skoszenia; i++)
	{
		long long wynik, dzien, dlugostosc;
		wynik=0;
		cin >> dzien >> dlugostosc;
		for(int r=0; r<poletko; r++)
		{
			wysokosc[r]=wysokosc[r]+(dzien-poprzednie_koszenie)*pole[r];
			if(wysokosc[r]>dlugostosc)
			{
				wynik=wynik+wysokosc[r]-dlugostosc;
				wysokosc[r]=dlugostosc;
			}
		}
		cout << wynik << "\n";
		poprzednie_koszenie=dzien;
	}
}