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])
'์๊ณ ๋ฆฌ์ฆ > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 11559 ๐ฅ] Puyo Puyo (1) | 2023.10.11 |
---|---|
[๋ฐฑ์ค 2628 ๐ฅ] ์ข ์ด์๋ฅด๊ธฐ (0) | 2023.10.08 |
[๋ฐฑ์ค 3758 ๐ฅ] KCPC (0) | 2023.10.07 |
[๋ฐฑ์ค 3967 ๐ฅ] ๋งค์ง ์คํ (0) | 2023.10.07 |
[๋ฐฑ์ค 1138 ๐ฅ] ํ ์ค๋ก ์๊ธฐ (0) | 2023.09.12 |