#54672: 簡單易懂的C++解法


william000000000 (unknown)


#include <iostream>

using namespace std;

int main()
{
    int w1, w2, h1, h2, n, pour, v1, v2, volume = 0, level1 = 0, level2, max_differ = 0;
    cin >> n >> w1 >> w2 >> h1 >> h2;
    v1 = w1 * w1 * h1; v2 = w2 * w2 * h2;

    for (int i = 0; i < n; i++) {
        int differ = 0;
        cin >> pour;

        volume += pour;
        if (volume < v1) level2 = volume / w1 / w1;
        else if (volume > (v1 + v2)) level2 = h1 + h2;
        else level2 = h1 + (volume - v1) / w2 / w2;

        differ = level2 - level1;
        level1 = level2;
        if (differ > max_differ) max_differ = differ;
    }
    cout << max_differ;

    return 0;
}