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;

}