
아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀
기본적인 아이디어는 가장 큰 사각형에서 가장 작은 사각형의 넓이를 빼는 것 !
작은 사각형의 넓이를 구하는게 관건인 문제였다.

입력을 모두 받은 후에 가로방향에서 최장길이, 세로방향에서 최장길이를 찾아서 변수에 따로 저장해둔다.
이 때, 그때의 인덱스 값을 저장해둬야 함 !
가로를 먼저 생각해봤을때, 인덱스가 1인 160이 최장길이로 나오는데
이 때 인덱스 1을 기준으로 인덱스+1을 한 값은 30, 인덱스-1을 한 값은 50이다. 이를 빼서 절댓값을 취해주면 세로방향의 최단길이가 나온다.
세로도 똑같이 생각을 해보면 인덱스가 0인 50이 최장길이로 나오고,
인덱스 0을 기준으로 인덱스+1을 한 값은 160, 인덱스-1을 한 값은 100이므로 이를 빼서 절댓값을 취해주면 가로방향의 최단길이인 60이 나온다
따라서 가로세로 방향의 최장길이의 곱과 최단길이의 곱을 뺀 후에 맨 처음 입력받은 k를 곱해주면 성공이다.
k = int(input())
arr = [list(map(int, input().split())) for _ in range(6)]
min_w = min_h = max_w = max_h = 0
maxw_idx = maxh_idx = 0
for idx, tmp in enumerate(arr):
if tmp[0] == 1 or tmp[0] == 2:
if max_w < tmp[1]:
maxw_idx = idx
max_w = tmp[1]
elif tmp[0] == 3 or tmp[0] == 4:
if max_h < tmp[1]:
maxh_idx = idx
max_h = tmp[1]
min_h = abs(arr[(maxw_idx - 1) % 6][1] - arr[(maxw_idx + 1) % 6][1])
min_w = abs(arr[(maxh_idx - 1) % 6][1] - arr[(maxh_idx + 1) % 6][1])
print (k * ((max_w * max_h) - (min_w * min_h)))
