1. 입력받은 가로와 세로의 길이를 각각 가로배열 = [0, 가로] / 세로 배열= [0, 세로] 의 배열에 넣어준다.
2. 점선을 자르는 값이 (0, 값)으로 들어오면 가로로 자르는 점선이므로 1번에 만들어 준 가로 배열에 값을 넣어주고
(1, 값)으로 들어오면 세로로 자르는 점선이므로 세로 배열에 값을 넣어준다.
3. 가로 배열과 세로 배열을 sort()함수를 이용하여 오름차순으로 정렬해준 뒤, 각 근접해있는 값끼리의 차이를 계산하여 가장 차이가 큰 값만 추출해준다.
4. 가로에서 차이가 큰 값과 세로에서 차이가 큰 값의 곱이 가장 큰 종이 조각이 된다.
구현한 코드
x, y = map(int, input().split())
a = [0, x]
b = [0, y]
n = int(input())
for i in range(1, n+1):
num, value = map(int, input().split())
if num == 1:
a.append(value)
else:
b.append(value)
a.sort()
b.sort()
t = []
z = []
for i in range(len(a)-1):
t.append(a[i+1] - a[i])
for i in range(len(b)-1):
z.append(b[i+1] - b[i])
print(max(t)*max(z))