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;

}