[λ°±μ€ 20006 π₯] λνΉμ λκΈ°μ΄
https://www.acmicpc.net/problem/20006
20006λ²: λνΉμ λκΈ°μ΄
λͺ¨λ μμ±λ λ°©μ λν΄μ κ²μμ μμ μ 무μ λ°©μ λ€μ΄μλ νλ μ΄μ΄λ€μ λ 벨과 μμ΄λλ₯Ό μΆλ ₯νλ€. μμ μ 무μ νλ μ΄μ΄μ μ 보λ€μ μ€ λ°κΏμΌλ‘ ꡬλΆλλ©° λ 벨과 μμ΄λλ ν μ€μμ 곡백
www.acmicpc.net
λ¬Έμ
μ’ μ΄μ΄λ μ΄μνλ κ²μμ λνΉμ κΈ°λ₯μ μΆκ°νλ €κ³ νλ€. νλ μ΄μ΄ κ°μ μ€λ ₯μ°¨μ΄κ° μμ μ μκΈ° λλ¬Έμ μ μ₯μ μ μ²νλ©΄ μμ κ³Ό λΉμ·ν λ 벨μ νλ μ΄μ΄λ€μ λ§€μΉνμ¬ κ²μμ μμνκ² νλ €κ³ νλ€.
νλ μ΄μ΄ κ° λ§€μΉμ ν΄μ£Όλ μμ€ν μ λ€μκ³Ό κ°λ€.
- νλ μ΄μ΄κ° μ μ₯μ μ μ²νμμ λ λ§€μΉμ΄ κ°λ₯ν λ°©μ΄ μλ€λ©΄ μλ‘μ΄ λ°©μ μμ±νκ³ μ μ₯μν¨λ€. μ΄λ ν΄λΉ λ°©μλ μ²μ μ μ₯ν νλ μ΄μ΄μ λ 벨μ κΈ°μ€μΌλ‘ -10λΆν° +10κΉμ§ μ μ₯ κ°λ₯νλ€.
- μ
μ₯ κ°λ₯ν λ°©μ΄ μλ€λ©΄ μ
μ₯μν¨ ν λ°©μ μ μμ΄ λͺ¨λ μ°° λκΉμ§ λκΈ°μν¨λ€.
- μ΄λ μ μ₯μ΄ κ°λ₯ν λ°©μ΄ μ¬λ¬ κ°λΌλ©΄ λ¨Όμ μμ±λ λ°©μ μ μ₯νλ€.
- λ°©μ μ μμ΄ λͺ¨λ μ°¨λ©΄ κ²μμ μμμν¨λ€.
νλ μ΄μ΄μ μ p, νλ μ΄μ΄μ λλ€μ n, νλ μ΄μ΄μ λ 벨 l, λ°© νκ°μ μ μ mμ΄ μ£Όμ΄μ‘μ λ μμ κ°μ λ°©λ²μΌλ‘ λ§€μΉν΄μ£Όκ³ μ΅μ’ μ μΌλ‘ λ§λ€μ΄μ§ λ°©μ μνμ μ μ₯ νλ μ΄μ΄λ€μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμ.
μ λ ₯
첫 λ²μ§Έ μ€μλ νλ μ΄μ΄μ μ p(1 ≤ p ≤ 300)μ λ°©μ μ μ m(1 ≤ m ≤ 300)κ° μ£Όμ΄μ§λ€.
λ λ²μ§Έ μ€λΆν° pκ°μ μ€μλ νλ μ΄μ΄μ λ 벨 l (1 ≤ l ≤ 500)κ³Ό λλ€μ nμ΄ κ³΅λ°±μ λκ³ μ£Όμ΄μ§λ€.
μ λ ₯λ μμλλ‘ κ²μμ μμνλ€.
λλ€μμ μ€λ³΅λμ§ μμΌλ©° 곡백μ ν¬ν¨νμ§ μλ μνλ²³ μλ¬Έμλ‘ λμ΄μμΌλ©° λλ€μμ κΈΈμ΄λ 16μ λμ§ μλλ€.
μΆλ ₯
λͺ¨λ μμ±λ λ°©μ λν΄μ κ²μμ μμ μ 무μ λ°©μ λ€μ΄μλ νλ μ΄μ΄λ€μ λ 벨과 μμ΄λλ₯Ό μΆλ ₯νλ€. μμ μ 무μ νλ μ΄μ΄μ μ 보λ€μ μ€ λ°κΏμΌλ‘ ꡬλΆλλ©° λ 벨과 μμ΄λλ ν μ€μμ 곡백μΌλ‘ ꡬλΆλλ€.
λ°©μ μμ±λ μμλλ‘ μΆλ ₯νλ€.
λ°©μ μλ νλ μ΄μ΄λ€μ μ 보λ λλ€μμ΄ μ¬μ μμΌλ‘ μμλ νλ μ΄μ΄λΆν° μΆλ ₯νλ€.
λ°©μ΄ μμλμμΌλ©΄ Started!λ₯Ό λκΈ° μ€μ΄λ©΄ Waiting!μ μΆλ ₯μν¨λ€.
λ¬Έμ νμ΄
- λΉκ΅μ κ°λ¨ν λ¨μ ꡬνλ¬Έμ μ΄λ€!
import sys
p, m = map(int, sys.stdin.readline().split(' '))
# 첫λ²μ§Έ νλ μ΄μ΄μ λ°© μΆκ°
firstl, firstn=sys.stdin.readline().strip().split(' ')
rooms=[]
rooms.append([(int(firstl), firstn)])
for _ in range(p-1):
level, nickname = sys.stdin.readline().strip().split(' ')
level=int(level)
# λ€μ΄κ° μ μλ λ°©μ΄ μ‘΄μ¬νλ κ²½μ°
# 1) λ°©μ μΈμμ΄ mλ³΄λ€ μκ³ , 첫λ²μ§Έ μ
μ₯ν νλ μ΄μ΄μ λ 벨과μ μ°¨μ΄κ° -10~+10μ΄λΌλ©΄
for room_no in range(len(rooms)):
room_level=rooms[room_no][0][0]
room_user=len(rooms[room_no])
if room_user<m and room_level-10<=level and level<=room_level+10:
rooms[room_no].append((level, nickname))
break
# κΈ°μ‘΄ λ°© μ€μ λ€μ΄κ° μ μλ λ°©μ΄ μλ€λ©΄
else:
rooms.append([(level, nickname)])
for room in rooms:
if len(room)==m:
print("Started!")
room.sort(key=lambda x:x[1])
for player in room:
print(player[0], player[1])
else:
print("Waiting!")
room.sort(key=lambda x: x[1])
for player in room:
print(player[0], player[1])