from collections import namedtuple
from sys import stdin
Contest = namedtuple("Contest", ["limit", "prize"])
N = int(stdin.readline())
contests = [
Contest(*map(int, stdin.readline().split()))
for _ in range(N)
]
result = "Kkeo-eok"
total_prize = 0
max_prize = 0
skip_prize = 0
skip = False
for limit, prize in contests:
if total_prize - skip_prize > limit: # ๋์ด๊ฐ ์๊ธ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐ
if skip: # ๋ถ์ฐธํ ์ ์ด ์ด๋ฏธ ์์ผ๋ฉด ์คํจ
result = "Zzz"
break
skip = True
if max_prize > prize and total_prize - max_prize <= limit: # ์ด์ ๋ํ ๋ถ์ฐธ
skip_prize = max_prize
else: # ์ด๋ฒ ๋ํ๋ฅผ ๋ถ์ฐธ
skip_prize = prize
total_prize += prize # ์ด ์๊ธ์ ์คํต ์ฌ๋ถ ๋ฐ์ง์ง ์๊ณ ๋ํจ
max_prize = max(max_prize, prize)
print(result)
# DP = [ [0] * 2 for _ in range(N+1)]
# for i in range(N):
# if DP[i][0] != FAIL and DP[i][0] <= contests[i].limit:
# DP[i+1][0] = DP[i][0] + contests[i].prize # ์ด๋ฒ ๊ฒฝ๊ธฐ ์ฐธ๊ฐ
# DP[i + 1][1] = DP[i][0] # ์ด๋ฒ ๊ฒฝ๊ธฐ ์์ฐธ๊ฐ
#
# elif DP[i][1] != FAIL and DP[i][1]<= contests[i].limit:
# DP[i+1][0] = DP[i][1] + contests[i].prize
# DP[i + 1][1] = FAIL
# count += 1
# else:
# result = "Zzz"
# break
# if count > 1:
# result = "Zzz"
# break
๋ณด์ ๋ฌธ์
https://www.acmicpc.net/problem/1202
https://www.acmicpc.net/problem/1480
https://www.acmicpc.net/problem/12865
์ฒ์์ ๋ณด์ ๋ฌธ์ ๋ฅ ์ธ์ค ์๊ณ , ํด๋น ๋ฐฉ์ DP๋ก ํ๋ ค๊ณ ์ฝ์ง์ ๋ง์ด ํ๋ค.
๊ทธ๋ฌ๋ค ์ฑ๊ณต or ์คํจ๋ง ์ฒดํฌํ๋ฉด ํ๋๊ฑธ ๊นจ๋ซ๊ณ , ์คํจํ๋ฉด ์ด์ ๋ํ์์ max_prize ๋ ์ด๋ฒ ๋ํ ์๊ธ ๋ ์ค์ ํฐ ๊ฐ(๊ฐ๋ฅํ๋ค๋ฉด) ์ ๋นผ๊ณ ๋ค์ ๋ํ๋ก ๋์ด๊ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์๋ค.
'๐ป CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTTP ์ ๋ฆฌ ๋ฐ ์ง๋ฌธ ๋ฆฌ์คํธ (feat.RESTful) (0) | 2025.03.22 |
---|---|
๋ก๋ ๋ฐธ๋ฐ์ (Load Balancer) (0) | 2025.03.10 |
[SQL] ์๋์ฐจ ๋์ฌ ๊ธฐ๋ก์์ ๋์ฌ์ค / ๋์ฌ ๊ฐ๋ฅ ์ฌ๋ถ ๊ตฌ๋ถํ๊ธฐ (ํ๋ก๊ทธ๋๋จธ์ค/Level 3) (5) | 2025.02.11 |
0-1 Knapsack Problem ์ต์ ํ (DP ๋ฉ๋ชจ๋ฆฌ) (0) | 2025.01.04 |
[Advent of Code] Day 1 Historian Hysteria (0) | 2024.12.01 |