#51886: 寫得很亂,但還是過了


yangtw0612@gmail.com (DouYa)

學校 : 臺中市立中港高級中學
編號 : 236893
來源 : [36.234.92.120]
最後登入時間 :
2025-08-05 20:27:32

#include <bits/stdc++.h>
using namespace std;

int main () {
    int n, w1, w2, h1, h2;
    cin >> n >> w1 >> w2 >> h1 >> h2;
    vector <int> a(n);
    vector <int> d(n);
    for (int i = 0; i < n; i ++) {
        cin >> a[i];
    }
    int cur = 0;
    for (int x = 0; x < n; x ++) {
        if (cur < h1) {
            if (cur + (a[x]/pow(w1, 2)) > h1) {
                a[x] = cur * pow(w1, 2) + a[x] - h1*pow(w1, 2);
                d[x] = h1-cur;
                cur = h1;
                if (a[x] / pow(w2, 2) < h2) {
                    cur += a[x] / pow(w2, 2);
                    d[x] += a[x] / pow(w2, 2);
                }
                else {
                    d[x] += h2;
                }
            }
            else {
                cur += a[x] / pow(w1, 2);
                d[x] = a[x] / pow(w1, 2);
            }
        }
        else {
            if (cur + a[x]/pow(w2, 2) < h1 + h2) {
                cur += a[x] / pow(w2, 2);
                d[x] = a[x] / pow(w2, 2);
            }
            else {
                d[x] = h1+h2-cur;
                cur = h1+h2;
            }
        }
    }
    int m = -1;
    for (int i = 0; i < n; i ++) {
        m = (m > d[i] ? m : d[i]);
    }
    cout << m << endl;
}