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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <vector>
using namespace std;


struct kos{
unsigned long long int d;
unsigned long long int b;

};


int main()
{
int n,m;
unsigned long long int masa=0;

cin>>n;
cin>>m;


vector<int> trawa(n);
vector<unsigned long long int> wysokosc(n);
vector<kos> koszenie(m+1);

koszenie[0].d=0;
koszenie[0].b=0;

for(int i=0;i<n;i++){
    wysokosc[i]=0;
    cin>>trawa[i];

}


for(int i=1;i<=m;i++){

    cin>>koszenie[i].d;
     cin>>koszenie[i].b;


}

int t;

for(int i=1;i<=m;i++){
masa=0;
t=koszenie[i].d-koszenie[i-1].d;
    for(int j=0; j<n ;j++){


        wysokosc[j]+=t*trawa[j];

    if(wysokosc[j]>koszenie[i].b){
            masa+=wysokosc[j]-koszenie[i].b;
        wysokosc[j]=koszenie[i].b;

    }

    }

cout<<masa<<endl;
}

    return 0;
}