๐ ๋ฌธ์ ํ์ํ๊ธฐ
- ํฌ๊ธฐ HxW ๋ชจ๋์ข
์ด, ์คํฐ์ปค N๊ฐ
- ๋ชจ๋์ข ์ด ํฌ๊ธฐ๋ 1x1์ธ ์นธ์ผ๋ก ๋๋์ด์ง๊ณ , ๊ฐ๊ฒฉ 1์ ๋๊ณ ์ ์ด ๊ทธ์ด์ ธ ์์
- i๋ฒ์งธ ์คํฐ์ปค์ ํฌ๊ธฐ : R(i)xC(i)
- ๋ชจ๋์ข
์ด์ ์คํฐ์ปค 2๊ฐ๋ฅผ ๋ถ์ด๊ณ ์ ํจ
- ์คํฐ์ปค์ ๋ณ์ด ๊ฒฉ์์ ์ ๊ณผ ์ผ์นํ๋๋ก
- ๋ ๊ฐ์ ์คํฐ์ปค๊ฐ ์๋ก ๊ฒน์น์ง ์๋๋ก (์ธ์ ํ๋ ๊ฒ์ ๊ฐ๋ฅ)
- ์คํฐ์ปค๋ฅผ 90๋ ํ์ ๊ฐ๋ฅ
- ์คํฐ์ปค๊ฐ ๋ชจ๋์ข ์ด๋ฅผ ๋ฒ์ด๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ
- ๋ ์คํฐ์ปค๊ฐ ๋ถ์ฌ์ง ๋์ด์ ์ต๋๊ฐ ๊ตฌํ๊ธฐ (๋ ์คํฐ์ปค๋ฅผ ๋ถ์ผ ์ ์๋ ๊ฒฝ์ฐ 0 ์ถ๋ ฅ)
๋ชจ๋์ข ์ด์ ๋์ด์ ๋๋น์ธ H, W์ ์คํฐ์ปค์ ๊ฐ์ N์ด ๊ฐ๊ฐ ์ต๋ 100์ ๋์ง ์์ ์ฃผ์ด์ง ์์ ํฌ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก, ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ๋ ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ ๊ณ ๋ คํด๋ณผ ์ ์๋ค.
N๊ฐ์ ์คํฐ์ปค๋ค ์ค 2๊ฐ์ง์ ์คํฐ์ปค๋ฅผ ๊ณจ๋ผ์ โ ๋ ๋ค ํ์ ์ํค์ง ์๋ ๊ฒฝ์ฐ โก์ฒซ๋ฒ์งธ ์คํฐ์ปค๋ง ํ์ ์ํค๋ ๊ฒฝ์ฐ โข๋๋ฒ์งธ ์คํฐ์ปค๋ง ํ์ ์ํค๋ ๊ฒฝ์ฐ โฃ๋ ๋ค ํ์ ์ํค๋ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ๋ค๊ฐ์ง์ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ๊ณ ๋ คํด์ ์คํฐ์ปค๋ฅผ ๋ถ์ผ ์ ์๋์ง ํ์ธํด์ ํ์ฌ ์คํฐ์ปค๋ค์ ๋์ด๋ฅผ ๊ตฌํ๋ค. ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํด ์๋ํด๋ณธ ํ ๋ ์คํฐ์ปค๊ฐ ๋ถ์ฌ์ง ๋์ด์ ์ต๋๊ฐ์ ๊ตฌํ๋ค.
๐ ์ฝ๋ ์ค๊ณํ๊ธฐ
- ๋ชจ๋ ์ข ์ด์ ํฌ๊ธฐ H, W์ ์คํฐ์ปค์ ์ N์ ์ ๋ ฅ๋ฐ๋๋ค.
- N๊ฐ์ ์คํฐ์ปค ํฌ๊ธฐ๋ฅผ stickers ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ๋๋ค.
- ๋ถ์ธ ์คํฐ์ปค์ ์ต๋๊ฐ์ ์ ์ฅํ ๋ณ์ max_area๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- stickers์์ ์คํฐ์ปค๋ฅผ ๋ ๊ฐ์ฉ ์ ํํ ํ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ํ์ํ๋ฉฐ ์ต๋ ์คํฐ์ปค ๋์ด max_area๋ฅผ ๊ฐฑ์ ํ๋ค. ์ด๋, ๋ชจ๋์ข
์ด์ ์คํฐ์ปค๋ฅผ ๋ถ์ผ ์ ์๋ ์ง ์ฌ๋ถ๋ โ ๋ ์คํฐ์ปค๋ฅผ ์ธ๋ก๋ก ์ด์ด ๋ถ์ธ ๊ฒฝ์ฐ โก๋ ์คํฐ์ปค๋ฅผ ๊ฐ๋ก๋ก ์ด์ด ๋ถ์ธ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ์ฒดํฌํ๋ค.
- ์คํฐ์ปค๋ฅผ ๋ชจ๋ ํ์ ์ํค์ง ์์ ์ํ
- ์ฒซ๋ฒ์งธ ์คํฐ์ปค๋ง ํ์ ์ํจ ์ํ
- ๋๋ฒ์งธ ์คํฐ์ปค๋ง ํ์ ์ํจ ์ํ
- ์คํฐ์ปค๋ฅผ ๋ชจ๋ ํ์ ์ํจ ์ํ
- ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํ ํ์์ด ๋๋๋ฉด, max_area๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ์ ๋ต ์ฝ๋
H, W = map(int, input().split())
N = int(input())
stickers = [tuple(map(int, input().split())) for _ in range(N)]
max_area = 0
for i in range(N):
for j in range(1, N):
if i == j:
continue
w1, h1 = stickers[i]
w2, h2 = stickers[j]
current_area = w1 * h1 + w2 * h2
if max_area >= current_area:
continue
# 1. ์คํฐ์ปค๋ฅผ ๋ชจ๋ ํ์ ์ํค์ง ์์ ์ํ
if (h1 + h2 <= H and max(w1, w2) <= W) or (w1 + w2 <= W and max(h1, h2) <= H):
max_area = current_area
continue
# 2. 1๋ฒ ์คํฐ์ปค๋ง ํ์ ์ํจ ์ํ
if (w1 + h2 <= H and max(h1, w2) <= W) or (h1 + w2 <= W and max(w1, h2) <= H):
max_area = current_area
continue
# 3. 2๋ฒ ์คํฐ์ปค๋ง ํ์ ์ํจ ์ํ
if (h1 + w2 <= H and max(w1, h2) <= W) or (w1 + h2 <= W and max(h1, w2) <= H):
max_area = current_area
continue
# 4. ๋ ์คํฐ์ปค ๋ชจ๋ ํ์ ์ํจ ์ํ
if (w1 + w2 <= H and max(h1, h2) <= W) or (h1 + h2 <= W and max(w1, w2) <= H):
max_area = current_area
continue
print(max_area)
728x90