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
//Marek Kochanowski
#include <iostream>
#include <vector>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef short int si;

// 4 4 1 2 4 3 1 1 2 2 3 0 4 4

int main() {
    cout.sync_with_stdio(0);
    ios_base::sync_with_stdio(0);

    int N, M;
    cin >> N >> M;
    ll t[N], x[N];
    for(int i = 0; i < N; i++) {
        long Var;
        cin >> Var;
        t[i] = Var;
        x[i] = Var;
    }

    vector<ll> D; //Days
    vector<ll> W; //Width

    ll maxD = 0;
    for(int i = 0; i < M; i++) {
        ll Var, Var2;
        cin >> Var >> Var2;
        maxD = max(maxD, Var);
        D.push_back(Var);
        W.push_back(Var2);
    }

    for(int i = 0; i < maxD; i++) {
        ll res = 0;
        //cout << D[i] << " " << W[i] << endl;
        for(int j = 0; j < N; j++) {
            if(x[j] > W[i]) {
                ll tmp = x[j] - W[i];
                res += tmp;
                //cout << x[j] << ":" << W[i] << endl;
                x[j] = W[i];
            }
        }
        cout << res << endl;
        for(int j = 0; j < N; j++)
            x[j] = x[j]+t[j];
    }

    return 0;
}