๐ ๋ฌธ์
์ ํธ์ ์ค๋๋ ํผ์ ์ง์ ์๋ค. ์ฌ์ฌํด์ ๊ฐ์ด ๋ถ๋ฃจ๋ง๋ถ ๊ฒ์์ ํ ์ฌ๋์ ์ฐพ์๋ดค์ง๋ง ์๋ฌด๋ ์์๋ค. ๊ทธ๋ ๊ฒ ํ ์๊ฐ, ๋ ์๊ฐ... ๋์ ํ ์ฐธ์ ์ ์์๋ ์ ํธ์ ๋ถ๋ฃจ๋ง๋ถ ๊ฒ์์ ํผ์ ํ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋๋ค.
ํผ์ ํ๋ ๋ถ๋ฃจ๋ง๋ถ ๊ฒ์์ ์ ์ฉ๋๋ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
์ผ๋ฐ ์นธ์ ๋ ์ข ๋ฅ๋ค.
๋์ ์นธ: ๋์ ๋ด๊ณ ๋ ์ ์ฌ์ผ ํ๋ ์นธ
ํฉ๊ธ ์ด์ ์นธ: ํน์ ํ ํจ๊ณผ๊ฐ ์๋ ์นด๋๊ฐ ๋ฐ๋๋๋ ์นธ
ํน์ ์นธ์ ๋ค ์ข ๋ฅ๋ค.
์์ ์นธ: ์ด ์นธ์ ์ ํํ ๋ฉ์ถ๊ฑฐ๋ ์ง๋๊ฐ๊ฒ ๋๋ฉด, ์๊ธ์ ๋ฐ๊ฒ ๋๋ค.
๋ฌด์ธ๋ ์นธ: ์ด ์นธ์ ์ ํํ ๋ฉ์ถ๊ฒ ๋๋ฉด, ๋ค์ ์ธ ํด ๋์ ๊ฐํ๊ฒ ๋๋ค.
๊ฐํ ์๋ ๋์, ๋ ์ฃผ์ฌ์๋ฅผ ๋์ก์ ๋ ๋์ด ๊ฐ์ ์๋ก ๋์ค๋ฉด ๋ฌด์ธ๋๋ฅผ ํ์ถํ๊ฒ ๋๋ฉฐ ๋ ์ฃผ์ฌ์๋ฅผ ํ ๋ฒ ๋ ๋์ ธ์ ๋์จ ์๋งํผ ์ด๋ํ๋ค.
์ฌํ๋ณต์ง๊ธฐ๊ธ ์นธ: ์ด ์นธ์ ์ ํํ ๋ฉ์ถ๊ฒ ๋๋ฉด, ์ง๊ธ๊น์ง ๋ชจ์ธ ์ฌํ๋ณต์ง๊ธฐ๊ธ์ ๋ฐ๊ฒ ๋๋ค. ์ฌํ๋ณต์ง๊ธฐ๊ธ์ ๋ฐ๊ณ ๋๋ฉด, ๊ธฐ๋ถ๊ธ์ 0์์ด ๋๋ค.
์ฐ์ฃผ์ฌํ ์นธ: ์ด ์นธ์ ์ ํํ ๋ฉ์ถ๊ฒ ๋๋ฉด, ๋ค์ ํด์ ์์ ์นธ์ผ๋ก ์ด๋ํ ๋ค ์ฃผ์ฌ์๋ฅผ ๊ตด๋ฆฐ๋ค.
์นธ์ ์ด $4n-4$๊ฐ๊ฐ ์กด์ฌํ๋ฉฐ, ์ด ์ค ์ ํํ ๋ค ๊ฐ์ ์นธ์ด ํน์ ์นธ์ด๊ณ , ๋๋จธ์ง ์นธ์ ์ผ๋ฐ ์นธ์ด๋ค. $1$๋ฒ์งธ ์นธ์ ์์ ์นธ์ด๊ณ , ์ฒ์์ ์ด๊ณณ์์ ์์ํ๋ค. $n$๋ฒ์งธ ์นธ์ ๋ฌด์ธ๋ ์นธ์ด๊ณ , $2n-1$๋ฒ์งธ ์นธ์ ์ฌํ๋ณต์ง๊ธฐ๊ธ ์นธ์ด๋ค. $3n-2$๋ฒ์งธ ์นธ์ ์ฐ์ฃผ์ฌํ ์นธ์ด๋ค. $4n-4$๋ฒ์งธ ์นธ๊ณผ $1$๋ฒ์งธ ์นธ์ด ์ฐ๊ฒฐ๋์ด ์์์ ์ ์ํด์ผ ํ๋ค.
์ ํธ์ ๋งค ํด ๋ค์ ์์๋ก ํ๋ํ๋ค.
๋ ์ฃผ์ฌ์ ๋์ง๊ธฐ
๋ ์ฃผ์ฌ์์ ๋๋งํผ ์ด๋ํ๊ธฐ
๋์ฐฉํ ์นธ์ ๋ฐ๋ฅธ ํ๋ ์ํํ๊ธฐ
๋์ ์นธ์ ๋์ฐฉํ์ ๋ ๊ฐ์ง๊ณ ์๋ ๋์ด ๋ ์ ๊ฐ๊ฒฉ๋ณด๋ค ๋ง๊ฑฐ๋ ๊ฐ๋ค๋ฉด, ๋ฐ๋์ ๋ ์ ๊ตฌ๋งคํด์ผ ํ๋ค.
๋์ ์นธ์ ๋ ์ ์ด๋ฏธ ๊ตฌ๋งคํ๊ฑฐ๋ ํ๊ธ์ด ๋ถ์กฑํด์ ๋ ์ ๊ตฌ๋งคํ ์ ์๋ ๊ฒฝ์ฐ์๋ ์๋ฌด๊ฒ๋ ๊ตฌ๋งคํ์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ๊ฒ์์ ๊ณ์ ์งํํ๋ค.
ํฉ๊ธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ํ์์ ๋ ๋ฐ๊ธฐ
์ํ์ ๋ ์ฃผ๊ธฐ
์ฌํ๋ณต์ง๊ธฐ๊ธ์ ๋ ๊ธฐ๋ถํ๊ธฐ
ํน์ ์นธ์ผ๋ก ์ด๋
ํฉ๊ธ ์ด์ ์์ ํน์ ์นธ์ผ๋ก ์ด๋ํ๊ฒ ๋๋ ๊ฒฝ์ฐ
ํญ์ ์ ๋ฐฉํฅ($1$ → $2$ → $3$ → ...)์ผ๋ก ์ด๋ํ๋ค.
์ด๋ํ๋ ๋์ ์ง๋์น๋ ์นธ์์๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์๋๋ค.
์ด๋ํ๊ณ ๋์ ํน์ ์นธ์์ ์ผ์ด๋์ผ ํ ์ผ๋ค(๋ ๊ตฌ๋งค, ์ฐ์ฃผ์ฌํ ๋ฑ)์ด ๊ทธ๋๋ก ์ผ์ด๋จ์ ์ ์ํด์ผ ํ๋ค.
์์ ์นธ์ ์ง๋๋ ๊ฒฝ์ฐ์๋ ์๊ธ๋ ๋ฐ๊ฒ ๋๋ค.
ํฉ๊ธ ์ด์ ๋ก ์ธํด์ ํฉ๊ธ ์ด์ ์นธ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ๋ ์์์ด ๋ณด์ฅ๋๋ค.
๋ชจ๋ ํด์ด ์ง๋ฌ์ ๋ ๊ตฌ๋งคํ์ง ์์ ๋์ ์นธ์ด ๋จ์ ์์ง ์๋ค๋ฉด ์ ํธ์ด ์น๋ฆฌํ๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด ํจ๋ฐฐํ๋ค.
ํฉ๊ธ ์ด์ ์์ ๋์ ์ง๋ถํ๊ฑฐ๋ ๊ธฐ๋ถํด์ผ ํ๋๋ฐ ํ๊ธ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ, ์ ํธ์ด ํจ๋ฐฐํ๋ค. ๋์ ์นธ์ ๋ ์ ๋ชจ๋ ๊ตฌ๋งคํ๋๋ผ๋ ๋ชจ๋ ํด์ด ์ง๋๊ธฐ ์ ์ ํ๊ธ์ด ๋ถ์กฑํ๋ฉด ํจ๋ฐฐํ ์ ์์์ ์ ์ํ๋ผ.
๊ฐ ์นธ์ ๋ํ ์ ๋ณด์ ํฉ๊ธ ์ด์ ๋ฆฌ์คํธ๋, ๊ฒ์ ์์ ์์ ์ ์ฃผ์ด์ง๊ณ , ์ ํํ ๊ทธ ์์๋๋ก ๋ฝํ๊ฒ ๋๋ค. ๋ชจ๋ ํฉ๊ธ ์ด์ ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋ฆฌ์คํธ์ ์ฒ์๋ถํฐ ๋ค์ ๋ฝ๊ฒ ๋๋ค.
๐์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ ๋ณด๋์ ํฌ๊ธฐ $n$, ์์ ์ ๊ฐ์ง๋ ๋ $S$, ์์์ ์ ์ง๋๋ฉด ๋ฐ๊ฒ ๋๋ ์๊ธ $W$, ํฉ๊ธ ์ด์ ์นด๋์ ๊ฐ์ $G$๊ฐ ์ฃผ์ด์ง๋ค. (3≤$n$≤10, 1≤$G$≤$4n−8$, 1≤$S$ ≤ $10^{7}$)
๊ทธ๋ค์ $G$๊ฐ์ ์ค์๋ ๋ค์๊ณผ ๊ฐ์ด ํฉ๊ธ ์ด์ ์นด๋์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋จผ์ ์ ๋ ฅ๋๋ ์นด๋์ผ์๋ก ๋จผ์ ๋ฝํ๊ฒ ๋๋ค. (1≤$x$≤$10^{7}$, 1≤$y$≤$4n−5$)
1 $x$: ์ํ์์ $x$์์ ๋ฐ๋๋ค.
2 $x$: ์ํ์ $x$์์ ์ค๋ค.
3 $x$: ์ฌํ๋ณต์ง๊ธฐ๊ธ์ $x$์์ ๊ธฐ๋ถํ๋ค.
4 $y$: ์์ผ๋ก $y$์นธ ์ด๋ํ๋ค.
๊ทธ๋ค์ $4n-8$๊ฐ์ ์ค์๋ ์ฐจ๋ก๋๋ก ํน์ ์นธ์ด ์๋ ๊ฒ๋ค์ ์ ๋ณด๊ฐ ์ ๋ ฅ๋๋ค. ํฉ๊ธ ์ด์ ์นธ์ด๋ฉด G๊ฐ, ์๋ ๊ฒฝ์ฐ์๋ L๊ณผ ๋ ๊ฐ๊ฒฉ $p$๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1≤$p$≤100 000)
๊ทธ๋ค์์ผ๋ก ๊ฒ์์ ํ๋ ๋์ ๋์ง๋ ์ฃผ์ฌ์์ ํ์ $I$๊ฐ ์ฃผ์ด์ง๋ค. (1≤$I$≤60$)
๊ทธ๋ค์ $I$๊ฐ์ ์ค์๋ ์ฐจ๋ก๋๋ก ์ฃผ์ฌ์ ๋ ๊ฐ์ ๋์ด ๊ณต๋ฐฑ์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ฃผ์ฌ์์ ๋์ $1$์์ $6$ ์ฌ์ด์ด๋ค.
๐์ถ๋ ฅ
์ ํธ์ด ํผ์ ํ๋ ๋ถ๋ฃจ๋ง๋ถ์์ ์ด๊ฒผ๋ค๋ฉด WIN์, ์ก๋ค๋ฉด LOSE๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ๋ฌธ์ ํ์ด
๋นก๊ตฌํ ๋ฌธ์ ์ด๋ค.
์ 1ํ ์ ํธ์ปต์ ์ถ์ ๋์๋ ๋ฌธ์ ์ธ๋ฐ ์ ๋ต๋ฅ ์ด ๋ชน์ ๋ฎ์๋ค.
๊ตฌํํด์ผ ํ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
- ๋ฌด์ธ๋์ ๊ฐํ์ ๋
- 3๋ฒ ๋์ ์์ง์ด์ง ๋ชปํจ
- ๋๋ธ ๋์ค๋ฉด ํ์ถ
- ๋์์ ๋ฐฉ๋ฌธํ์ ๋
- ํด๋น ๋์๋ฅผ ์์ง ๊ตฌ๋งคํ์ง ์์๊ณ ๊ฐ์ง ๋์ผ๋ก ํด๋น ๋์๋ฅผ ๊ตฌ๋งคํ ์ ์๋ ๊ฒฝ์ฐ -> ๊ตฌ๋งค
- ์ฐ์ฃผ์ฌํ์ ํ ๋
- ํ์ฌ ์์น๋ฅผ ์์ ์นธ์ผ๋ก ์ด๋ (0)
- ์๊ธ ์ถ๊ฐ
- ์ฌํ๋ณต์ง๊ธฐ๊ธ ์นธ์ ์์ ๋
- ์ฌํ๋ณต์ง๊ธฐ๊ธ์ ๋ฐ๊ณ ์ด๊ธฐํ
- ํฉ๊ธ ์ด์ ์นธ์ ๋์ฐฉํ์ ๋
- 1 x: ์ํ์ x ๋ฐ๊ธฐ
- 2 x: ์ํ์ x ๋ด๊ธฐ
- ์ด๋ ๊ฐ์ง ๋์ด x๋ณด๋ค ์๋ค๋ฉด ๊ฒ์์์ ์ง๊ฒ ๋๊ณ ์ฆ์ ์ข ๋ฃ
- 3 x: ์ฌํ๋ณต์ง๊ธฐ๊ธ x์ ๊ธฐ๋ถ
- ์ด๋ ๊ฐ์ง ๋์ด x๋ณด๋ค ์๋ค๋ฉด ๊ฒ์์์ ์ง๊ฒ ๋๊ณ ์ฆ์ ์ข ๋ฃ
- 4 x: x ์นธ ์์ผ๋ก ์ด๋
- ์ด๋ ๋์ฐฉํ ์นธ์ ๋ฐ๋ผ ํ๋ํ๋ค. (ex. ์ฐ์ฃผ์ฌํ, ๋์, ์ฌํ๋ณต์ง๊ธฐ๊ธ)
์ถ๊ฐ๋ก ๊ฐ์ง ํฉ๊ธ์ด์ ์นด๋๋ณด๋ค ์ด๊ฒ๋๋ ํ์๊ฐ ๋ ๋ง์ ์ ์๊ธฐ ๋๋ฌธ์ ์นด๋ ์ธ๋ฑ์ค๋ฅผ G๋ก ๋๋ ๋๋จธ์ง๊ฐ์ผ๋ก ์ฌ์ฉํ์๋ค.
๊ตฌํํ๋ค๊ฐ ์ค์ ํ๋ ๋ถ๋ถ์ n=3, ์ฆ ๋ณด๋์ ํฌ๊ธฐ๊ฐ ์์ ๋ ์๊ธ์ ๋๋ฒ ๋ฐ์ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค๋ ๊ฑธ ๋์ณค์๋ค.
๊ทธ๋ฆฌ๊ณ ์์์ ์ ์ง๋๋ฉด ๋ฐ๋ก ์๊ธ์ ์ค์ผ์ง ๋์ฐฉํ ์นธ์ ์๊ธ๋ฐ์ ๊ฒ์ผ๋ก ๋์๋ฅผ ๊ตฌ๋งคํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ๋ก์ง ๋ค ๋๋ธ๋ค์ ์๊ธ์ ์ฃผ์ด์ ์ด ๋ถ๋ถ๋ ์ค์๊ฐ ์์๋ค.
๊ทธ๋๋ ๋ํ ์ค์ ์์์ฐจ๋ ค์ ๋คํ์ด๋ค:)
๐ป ์ฝ๋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | import sys input = sys.stdin.readline def act_gold_key(): global key_idx, s, win, cur, social, city, island, bought if gold_keys[key_idx][0] == 1: s += gold_keys[key_idx][1] # ์ํ์ ์ฃผ๊ธฐ elif gold_keys[key_idx][0] == 2: if s >= gold_keys[key_idx][1]: s -= gold_keys[key_idx][1] else: # ๋ ์ง๋ถ ๋ชปํจ win = False elif gold_keys[key_idx][0] == 3: if s >= gold_keys[key_idx][1]: s -= gold_keys[key_idx][1] social += gold_keys[key_idx][1] else: # ๋ ์ง๋ถ ๋ชปํจ win = False else: cur += gold_keys[key_idx][1] cur %= n*4-4 if cur - gold_keys[key_idx][1] < 0: s += w if type(board[cur]) == int: if board[cur] <= s and not bought[cur]: bought[cur] = True s -= board[cur] city -= 1 elif board[cur] == "์ฌํ๋ณต์ง๊ธฐ๊ธ": s += social social = 0 elif board[cur] == "์ฐ์ฃผ์ฌํ": # ์์์นธ์ผ๋ก ์ด๋ cur = 0 s += w elif board[cur] == "๋ฌด์ธ๋": island = 3 key_idx += 1 key_idx %= g # ๋ณด๋ํฌ๊ธฐ, ์์ ๋, ์๊ธ, ํฉ๊ธ์ด์ ๊ฐฏ์ n,s,w,g = map(int,input().split()) gold_keys = [list(map(int,input().split())) for _ in range(g)] key_idx = 0 # ๋์ ๊ฐ์ city = 0 cur = 0 bought = dict() win = True social = 0 island = 0 """ 1 x: x๋ฐ๊ธฐ 2 x: x๋ด๊ธฐ 3 x: ์ฌํ๋ณต์ง ๊ธฐ๊ธ x์ ๊ธฐ๋ถ 4 x: ์์ผ๋ก ์ด๋ """ board = [""]*(4*n-4) board[0] = "์์" board[n-1] = "๋ฌด์ธ๋" board[2*n-2] = "์ฌํ๋ณต์ง๊ธฐ๊ธ" board[3*n-3] = "์ฐ์ฃผ์ฌํ" idx = 1 while idx<4*n-4: tmp = input().rstrip().split() if tmp[0] == "G": board[idx] = "G" else: city += 1 bought[idx] = False board[idx] = int(int(tmp[1])) idx += 1 if idx in {n-1, 2*n-2, 3*n-3}: idx += 1 cnt = int(input()) for _ in range(cnt): one,two = map(int,input().split()) if island > 0: island -= 1 if one == two: # ํ์ถ island = 0 continue cur += (one+two) if cur >= n*4-4: s += w*(cur//(n*4-4)) cur %= n*4-4 if type(board[cur]) == int: if board[cur] <= s and not bought[cur]: bought[cur] = True s -= board[cur] city -= 1 # ํฉ๊ธ์ด์ elif board[cur] == "G": act_gold_key() if not win: print("LOSE") break elif board[cur] == "์ฌํ๋ณต์ง๊ธฐ๊ธ": s += social social = 0 elif board[cur] == "์ฐ์ฃผ์ฌํ": # ์์์นธ์ผ๋ก ์ด๋ cur = 0 s += w elif board[cur] == "๋ฌด์ธ๋": island = 3 else: if city: print("LOSE") else: print("WIN") | cs |
๐ญ ์ํ์ฐฉ์ค
๐ ๋ฌธ์ ๋งํฌ Every? Only One's Marble
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 20560๋ฒ: ๋ง์ง ํ๋ฐฉ (1) | 2023.09.01 |
---|---|
[๋ฐฑ์ค] 1185: ์ ๋ฝ ์ฌํ (0) | 2023.08.24 |
[๋ฐฑ์ค] 17132๋ฒ: ๋๋์ง๊ฐ ์ ๋ณด์ฌ์ ์ฌ๋ผ์จ ์ด์ - ํ์ด์ฌ (0) | 2023.08.06 |
[๋ฐฑ์ค] 2637๋ฒ: ์ฅ๋๊ฐ ์กฐ๋ฆฝ - ํ์ด์ฌ (0) | 2023.07.30 |
[๋ฐฑ์ค] 17398๋ฒ: ํต์ ๋ง ๋ถํ (0) | 2023.07.02 |