Submission
Status:
[PPPP][PPPP][PPPP][PPPP][PPPP][xSSS][PPPP][PPPP]
Score: 91
User: 1234
Problemset: ขนมปัง
Language: cpp
Time: 0.007 second
Submitted On: 2025-03-30 10:11:06
#include <iostream>
using namespace std;
int main(){
int W, H, M, N;
cin >> W >> H >> M >> N;
int verticalCuts[1000], horizontalCuts[1000];
int widths[1001], heights[1001];
int areas[1000000];
for (int i = 0; i < M; i++) {
cin >> verticalCuts[i];
}
for (int i = 0; i < N; i++) {
cin >> horizontalCuts[i];
}
widths[0] = verticalCuts[0];
for (int i = 1; i < M; i++) {
widths[i] = verticalCuts[i] - verticalCuts[i - 1];
}
widths[M] = W - verticalCuts[M-1];
heights[0] = horizontalCuts[0];
for (int i = 1; i < N; i++) {
heights[i] = horizontalCuts[i] - horizontalCuts[i - 1];
}
heights[N] = H - horizontalCuts[N - 1];
int areaCount = 0;
for (int i = 0; i <= M; i++) {
for (int j = 0; j <= N; j++) {
areas[areaCount++] = widths[i] * heights[j];
}
}
int max1 = 0, max2 = 0;
for (int i = 0; i < areaCount; i++) {
if (areas[i] > max1) {
max2 = max1;
max1 = areas[i];
} else if (areas[i] > max2) {
max2 = areas[i];
}
}
cout << max1 << " " << max2 << endl;
}