Submission

Status:

[PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP]

Subtask/Task Score:

{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}

Score: 100

User: nemuchannnUwU

Problemset: ขนมปัง

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-17 11:35:42

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

int main() {
    cin.tie(nullptr)->sync_with_stdio(0);
    int W, H, n, m;
    cin >> W >> H >> n >> m;
    vector<int> X(n), Y(m);
    for (auto &x : X) cin >> x;
    for (auto &y : Y) cin >> y;
    sort(X.begin(), X.end());
    sort(Y.begin(), Y.end());
    int Xmxdif1 = X[0];
    int Xmxdif2 = 0;
    for(int i = 1; i < n; i++) {
        int diff = X[i] - X[i-1];
        if(diff > Xmxdif1) {
            Xmxdif2 = Xmxdif1;
            Xmxdif1 = diff;
        } else if(diff > Xmxdif2) {
            Xmxdif2 = diff;
        }
    }
    int lastDiffX = W - X[n-1];
    if(lastDiffX > Xmxdif1) {
        Xmxdif2 = Xmxdif1;
        Xmxdif1 = lastDiffX;
    } else if(lastDiffX > Xmxdif2) {
        Xmxdif2 = lastDiffX;
    }
    if(n == 1) Xmxdif2 = Xmxdif1;
    int Ymxdif1 = Y[0];
    int Ymxdif2 = 0;
    for(int i = 1; i < m; i++) {
        int diff = Y[i] - Y[i-1];
        if(diff > Ymxdif1) {
            Ymxdif2 = Ymxdif1;
            Ymxdif1 = diff;
        } else if(diff > Ymxdif2) {
            Ymxdif2 = diff;
        }
    }
    int lastDiffY = H - Y[m-1];
    if(lastDiffY > Ymxdif1) {
        Ymxdif2 = Ymxdif1;
        Ymxdif1 = lastDiffY;
    } else if(lastDiffY > Ymxdif2) {
        Ymxdif2 = lastDiffY;
    }
    if(m == 1) Ymxdif2 = Ymxdif1;
    vector<int> areas(4);
    areas[0] = Xmxdif1 * Ymxdif1;
    areas[1] = Xmxdif1 * Ymxdif2;
    areas[2] = Xmxdif2 * Ymxdif1;
    areas[3] = Xmxdif2 * Ymxdif2;
    sort(areas.begin(), areas.end(), greater<int>());
    cout << areas[0] << " " << areas[1] << "\n";
}