AtCoder Beginner Contest 333
ย - Last update: 2023-12-16

ABC 333 Upsolving

๊น”๋”ํ•œ ์ œ์ถœ๊ธฐ๋ก. F๋ฅผ 1์‹œ๊ฐ„ ๊ณ ๋ฏผํ•˜๊ณ  ํ’€์ง€ ๋ชปํ•œ ๊ฒƒ์€ ์•„์‰ฝ๋‹ค.

  • ๋Œ€ํšŒ ์ฐธ๊ฐ€ ์œ ๋ฌด: Y
  • ์ตœ์ข… Performance: 1494 (Rank: 1129 / 13970)
  • Round ๋งํฌ: Top / Tasks
  • ๋ฌธ์ œ๋ณ„ ๊ฒฐ๊ณผ
ABCDEFG
AC
AC
AC
AC
AC
--

์Šฌ์Šฌ ์•ณ์ฝ”๋”๋„ ๋ฏผํŠธ๊ฐ์ด ๋ณด์ธ๋‹ค. F๋ฒˆ์€ ์•ณ์ฝ”๋”์— ๋งŽ์ด ๋‚˜์˜ค๋˜ ํ™•๋ฅ  DP์ธ๋ฐ, ๋ธ”๋กœ๊ทธ์— ๋‚˜๋ฆ„ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋Š”๋ฐ๋„ ๋ชปํ’€์–ด์„œ ์•„์‰ฌ์› ๋‹ค. ์—…์†”๋น™ ํ•„์ˆ˜.

A - Three Threes

Do you know ๋ฐ˜๋ณต๋ฌธ? ๋‹จ์ˆœํžˆ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ ์ˆซ์ž๋งŒํผ ๋ฐ˜๋ณต์‹œ์ผœ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

B - Pentagon

Can you use LUT? ์•„๋ž˜ ๋ฐฉ์‹์ด ๋จธ๋ฆฌ๊ฐ€ ์•ˆ์•„ํ”„๋‹ค.

int len[5][5] = {
0, 1, 2, 2, 1,
1, 0, 1, 2, 2,
2, 1, 0, 1, 2,
2, 2, 1, 0, 1,
1, 2, 2, 1, 0
};

C - Repunit Trio

11์ด ๋ฐ˜๋ณต๋˜๋Š” ๋ฐฐ์—ด์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ , O(N3)O(N^3) ์˜ ์™„์ „ ํƒ์ƒ‰. ์—ฌ๊ธฐ์„œ NN์€ ๋Œ€์ถฉ ํ•œ 1414์ •๋„์˜ ๊ธธ์ด๋กœ ์žก์•˜๋‹ค. Nโ‰ค333N \le 333์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ปค๋ฒ„๊ฐ€ ๋˜๋ฉด ๋œ๋‹ค. (์นœ์ ˆํ•˜๊ฒŒ ์˜ˆ์ œ TC์— N=333N = 333์ด ์žˆ์œผ๋‹ˆ ์–ด๋ ต์ง€ ์•Š๋‹ค)

D - Erase Leaves

์ „ํ˜•์ ์ธ ํŠธ๋ฆฌ DP. dfs๋กœ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ๋Œ๋ฆฌ๋ฉด ๊ฐ subtree์˜ size๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ , 11๋ฒˆ ์ •์ ์— ์—ฐ๊ฒฐ๋œ ๋…€์„๋“ค์˜ size ์ค‘ ๊ฐ€์žฅ ํฐ ์• ๋ฅผ 11๋ฒˆ ์ •์ ์˜ size์—์„œ ๋นผ์ฃผ๋ฉด ๋‹ต์ด ๋œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)O(N).

E - Takahashi Quest

์‹œ๋ฎฌ๋ ˆ์ด์…˜ + Greedy. ํฌ์…˜์ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๊ณ  ์ด ํฌ์…˜์„ ๋ชฌ์Šคํ„ฐ๋ฅผ ์žก๋Š”๋ฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์šฉ์‚ฌ์˜ ๋ชจํ—˜์ด ์ง„ํ–‰๋˜๋ฏ€๋กœ, ํฌ์…˜์€ ๊ฐ€๊ธ‰์  ๋ชฌ์Šคํ„ฐ์— ๋งˆ์ฃผ์น˜๊ธฐ ์ง์ „์˜ ํฌ์…˜์„ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค(Greedy stays ahead). ๋งŒ์•ฝ ๋งˆ์ฃผ์นœ ์‹œ์ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์…˜์ด ์—†๋‹ค๋ฉด ์ฆ‰์‹œ ์ข…๋ฃŒ. ํ•˜๋‚˜๋ผ๋„ ์žˆ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•˜๊ณ , ์Šคํƒ์œผ๋กœ ์–ด๋Š ํฌ์…˜์„ ์ง‘์„์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ฒฐ์ •ํ•œ ํ›„, Fenwick ๊ณผ ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•˜๋ฉด์„œ ์šฉ์‚ฌ์˜ ์ตœ๋Œ€ ํฌ์…˜ ์†Œ์ง€๋Ÿ‰์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(NlogโกN)O(N \log N).

Editorial์—์„œ๋Š” Fenwick์ด ์•„๋‹Œ imos๋กœ ๊ณ„์‚ฐํ–ˆ๋‹ค. (inclusive_scan์ด๋ผ๋Š” ๋ชป๋ณด๋˜ STL์„ ์‚ฌ์šฉํ–ˆ๋‹ค.)

F - Bomb Game 2 (To be upsolved...)

์•ณ์ฝ”๋” ๋นˆ์ถœ ์œ ํ˜•. ์˜ˆ์ „ DP ์—ฐ์Šต์šฉ ์…‹์˜ ํ™•๋ฅ  DP ๋ฌธ์ œ์ด๋‹ค. ํ™•๋ฅ ๊ฐ„์˜ ์ „์ด๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ. ์—…์†”๋น™ ์˜ˆ์ •. ๊ฒฐ๊ณผ ์ถœ๋ ฅ์ด ๋ถ„์ˆ˜ ํ˜•ํƒœ๊ฐ€ ๋  ๋•Œ ํ•ด๋‹น ์ถœ๋ ฅ์„ ๋ชจ๋“ˆ๋กœ ์—ญ์›์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๋Š” ์•ณ์ฝ”๋”์— ์ž์ฃผ ๋‚˜์™€์„œ ์•„๋ž˜ ๊ธ€์— ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ–ˆ๋‹ค.

G - Nearest Fraction (Will not be upsovled, just memo)

ํŠน์ดํ•œ ํ’€์ด๊ฐ€ ์žˆ์–ด์„œ ๋ฉ”๋ชจ์šฉ์œผ๋กœ ์ €์žฅํ•ด๋‘”๋‹ค. ๊ฐ“์ด์ฌ์˜ Fraction์„ ์‚ฌ์šฉํ•œ ํ’€์ด.

from fractions import Fraction
r = Fraction(input())
N = int(input())
ans = (r - Fraction("1e-100")).limit_denominator(N)
print(*ans.as_integer_ratio())
๐Ÿท๏ธ ์ฃผ์ œ ๋ชฉ๋ก: