๊น๋ํ ์ ์ถ๊ธฐ๋ก. F
๋ฅผ 1์๊ฐ ๊ณ ๋ฏผํ๊ณ ํ์ง ๋ชปํ ๊ฒ์ ์์ฝ๋ค.
A | B | C | D | E | F | G |
---|---|---|---|---|---|---|
AC | AC | AC | AC | AC | - | - |
์ฌ์ฌ ์ณ์ฝ๋๋ ๋ฏผํธ๊ฐ์ด ๋ณด์ธ๋ค. F
๋ฒ์ ์ณ์ฝ๋์ ๋ง์ด ๋์ค๋ ํ๋ฅ DP
์ธ๋ฐ, ๋ธ๋ก๊ทธ์ ๋๋ฆ ์ ๋ฆฌ๋ฅผ ํ๋๋ฐ๋ ๋ชปํ์ด์ ์์ฌ์ ๋ค. ์
์๋น ํ์.
Do you know ๋ฐ๋ณต๋ฌธ? ๋จ์ํ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ทธ ์ซ์๋งํผ ๋ฐ๋ณต์์ผ ์ถ๋ ฅํ๋ฉด ๋๋ค.
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};
์ด ๋ฐ๋ณต๋๋ ๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ , ์ ์์ ํ์. ์ฌ๊ธฐ์ ์ ๋์ถฉ ํ ์ ๋์ ๊ธธ์ด๋ก ์ก์๋ค. ์ด๊ธฐ ๋๋ฌธ์, ์ปค๋ฒ๊ฐ ๋๋ฉด ๋๋ค. (์น์ ํ๊ฒ ์์ TC์ ์ด ์์ผ๋ ์ด๋ ต์ง ์๋ค)
์ ํ์ ์ธ ํธ๋ฆฌ DP
. dfs
๋ก ๊น์ด ์ฐ์ ํ์์ ๋๋ฆฌ๋ฉด ๊ฐ subtree
์ size
๋ฅผ ๊ตฌํ ์ ์๊ณ , ๋ฒ ์ ์ ์ ์ฐ๊ฒฐ๋ ๋
์๋ค์ size
์ค ๊ฐ์ฅ ํฐ ์ ๋ฅผ ๋ฒ ์ ์ ์ size
์์ ๋นผ์ฃผ๋ฉด ๋ต์ด ๋๋ค. ์๊ฐ๋ณต์ก๋๋ .
์๋ฎฌ๋ ์ด์
+ Greedy
. ํฌ์
์ด ์ฌ๋ฌ ์ข
๋ฅ๊ฐ ์๊ณ ์ด ํฌ์
์ ๋ชฌ์คํฐ๋ฅผ ์ก๋๋ฐ์ ์ฌ์ฉํ๋ค. ์๊ฐ๋๋ณ๋ก ์ฉ์ฌ์ ๋ชจํ์ด ์งํ๋๋ฏ๋ก, ํฌ์
์ ๊ฐ๊ธ์ ๋ชฌ์คํฐ์ ๋ง์ฃผ์น๊ธฐ ์ง์ ์ ํฌ์
์ ์ฐ๋ ๊ฒ์ด ์ข๊ฒ ๋ค(Greedy stays ahead). ๋ง์ฝ ๋ง์ฃผ์น ์์ ์ ์ฌ์ฉํ ์ ์๋ ํฌ์
์ด ์๋ค๋ฉด ์ฆ์ ์ข
๋ฃ. ํ๋๋ผ๋ ์๋ค๋ฉด ๊ฐ๋ฅํ๊ณ , ์คํ์ผ๋ก ์ด๋ ํฌ์
์ ์ง์์ง ๊ฒฐ์ ํ๋ค. ๊ฒฐ์ ํ ํ, Fenwick
๊ณผ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ก ๋ค์ ์ฒ์๋ถํฐ ์๋ฎฌ๋ ์ด์
ํ๋ฉด์ ์ฉ์ฌ์ ์ต๋ ํฌ์
์์ง๋์ ๊ณ์ฐํ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ๋ณต์ก๋๋ .
Editorial์์๋ Fenwick
์ด ์๋ imos
๋ก ๊ณ์ฐํ๋ค. (inclusive_scan
์ด๋ผ๋ ๋ชป๋ณด๋ STL
์ ์ฌ์ฉํ๋ค.)
์ณ์ฝ๋ ๋น์ถ ์ ํ. ์์ DP
์ฐ์ต์ฉ ์
์ ํ๋ฅ DP
๋ฌธ์ ์ด๋ค. ํ๋ฅ ๊ฐ์ ์ ์ด๋ฅผ ์๊ฐํด์ผ ํ๋ ๋ฌธ์ . ์
์๋น ์์ . ๊ฒฐ๊ณผ ์ถ๋ ฅ์ด ๋ถ์ ํํ๊ฐ ๋ ๋ ํด๋น ์ถ๋ ฅ์ ๋ชจ๋๋ก ์ญ์์ผ๋ก ๋ค๋ฃจ๋ ๋ฌธ์ ๋ ์ณ์ฝ๋์ ์์ฃผ ๋์์ ์๋ ๊ธ์ ํ๋ฒ ๋ ์ ๋ฆฌํ๋ค.
ํน์ดํ ํ์ด๊ฐ ์์ด์ ๋ฉ๋ชจ์ฉ์ผ๋ก ์ ์ฅํด๋๋ค. ๊ฐ์ด์ฌ์ Fraction
์ ์ฌ์ฉํ ํ์ด.
from fractions import Fractionr = Fraction(input())N = int(input())ans = (r - Fraction("1e-100")).limit_denominator(N)print(*ans.as_integer_ratio())