Submission
Status:
[PPPP][PPPP][PPPP][PPP-][PPPP][PPPP][PPPP][PPPP]
Score: 91
User: 1234
Problemset: ขนมปัง
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-30 10:45:22
#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[1000010];
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 maxWidth1 = 0, maxWidth2 = 0;
for (int i = 0; i <= M; i++) {
if (widths[i] > maxWidth1) {
maxWidth2 = maxWidth1;
maxWidth1 = widths[i];
}else if (widths[i] > maxWidth2) {
maxWidth2 = widths[i];
}
}
int maxHeight1 = 0, maxHeight2 = 0;
for (int i = 0; i <= N; i++) {
if (heights[i] > maxHeight1) {
maxHeight2 = maxHeight1;
maxHeight1 = heights[i];
}else if (heights[i] > maxHeight2) {
maxHeight2 = heights[i];
}
}
int LargestA = maxWidth1 * maxHeight1;
int Large1 = maxWidth2 * maxHeight1;
int Large2 = maxWidth1 * maxHeight2;
int secondLargestA = 0;
if (Large1 > Large2) {
secondLargestA = maxWidth2 * maxHeight1;
}else if(Large2 > Large1){
secondLargestA = maxWidth1 * maxHeight2;
}
cout << LargestA << " " << secondLargestA << endl;
}