๐Ÿšง This website is under construction. ๐Ÿšง
AtCoder
ABC
090
D

ABC090 D - Remainder Reminder

ABC090 D - Remainder Reminder https://atcoder.jp/contests/abc090/tasks/arc091_b (opens in a new tab) (ใฉใ†ใ‚„ใ‚‰ ARC ใงใ‚‚ๅ‡บ้กŒใŒใ‚ใฃใŸใ‚‰ใ—ใ„) ็ท‘ไธŠไฝใ€‚

ใพใจใ‚‚ใซใ‚„ใ‚‹ใจ O(N2)O(N^2) ็ณปใฎใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใฎใŸใ‚ใ€ a,ba,b ใฎใ„ใšใ‚Œใ‹ใ‚’ๅ›บๅฎšใ—ใŸไธŠใงใ‚‚ใ†็‰‡ๆ–นใซ่ฆๅ‰‡ๆ€งใ‚’่ฆ‹ๅ‡บใ™ๅ•้กŒใจใชใ‚‹ใ€‚

bb ใฎๆ–นใ‚’ๅ›บๅฎšใ™ใ‚‹ใจใชใ‚“ใจใชใ่ฆๅ‰‡ๆ€งใŒใ‚ใ‚Šใใ†ใ ใŒใ€็ตๅฑ€ๅˆ†ใ‹ใ‚‰ใšใ˜ใพใ„ใ€‚ ๅฐ‘ใ—ๅ…ทไฝ“็š„ใชไพ‹ใง่€ƒใˆใฆใฟใ‚ˆใ†ใ€‚

ไปŠ b=5b=5 ใ‚’ๅ›บๅฎšใ™ใ‚‹ใจใ€ๅ„ aa ใซๅฏพใ—ใฆใ€ 0%5=00 \% 5=0 1%5=11 \% 5=1 2%5=22 \% 5=2 3%5=33 \% 5=3 4%5=44 \% 5=4 5%5=05 \% 5=0 6%5=16 \% 5=1 :: ใจใ€ 0,1,2,3,...,bโˆ’2,bโˆ’1,0,1,2,3,...,bโˆ’2,bโˆ’1,0,1,2,...r0,1,2,3,...,b-2,b-1,0,1,2,3,...,b-2,b-1,0,1,2,...r (ใŸใ ใ— r<br<b ) ใจ่ฆๅ‰‡ๆญฃใ—ใไธฆใ‚“ใงใ„ใใ“ใจใŒๅˆ†ใ‹ใ‚‹ใ€‚

็นฐใ‚Š่ฟ”ใ—ใฎๅ›žๆ•ฐใจๆœ€ๅพŒใฎไฝ™ใ‚Šใฎ้ƒจๅˆ†ใ‚’ๆฉŸๆขฐ็š„ใซๅ‡ฆ็†ใงใใ‚‹ใ‹ใŒใƒใ‚คใƒณใƒˆใงใ€ใ“ใ‚Œใฏ divmod(n, b) ใซใ‚ˆใฃใฆ็ฐกๅ˜ใซๆฑ‚ใ‚ใ‚‹ใ“ใจใŒๅ‡บๆฅใใ†ใงใ‚ใ‚‹ใ€‚

็นฐใ‚Š่ฟ”ใ—ใฎ้ƒจๅˆ†ใฎ k,k+1,...,bโˆ’2,bโˆ’1k,k+1,...,b-2,b-1 ใŒๆกไปถใ‚’ๆบ€ใŸใ™ aa ใงใ‚ใ‚Šใ€ใ“ใฎๆ•ฐใฏ max(0, b - k) ใซใ‚ˆใ‚Šๆฑ‚ใพใ‚‹ใ€‚ ๆœ€ๅพŒใฎไฝ™ใ‚Šใฎ้ƒจๅˆ†ใงใฏใ€ k,k+1,...,rk,k+1,...,r ใŒๆกไปถใ‚’ๆบ€ใŸใ™ aa ใงใ‚ใ‚Šใ€ใ“ใฎๆ•ฐใฏ max(0, r - k + 1) ใซใ‚ˆใ‚Šๆฑ‚ใพใ‚‹ใ€‚

ๆœ€ใ‚‚้‡่ฆใชใƒใ‚คใƒณใƒˆใฏ a=0a=0 ใ‚’ๅซใ‚ใŸใ“ใจใงใ‚ใ‚ใ†ใ€‚ใ“ใ‚Œใซใ‚ˆใฃใฆใ‹ใชใ‚Š็ฐกๅ˜ใซ่€ƒใˆใ‚‹ใ“ใจใŒๅ‡บๆฅใŸใ€‚ ๆœ€ๅพŒใซ a=0a=0 ใงๆกไปถใ‚’ๆบ€ใŸใ™ๅ ดๅˆ( k=0k=0 )