ABC lessons learned11 - zettsu-t/zettsu-t.github.io GitHub Wiki

AtCoder Beginner Contest lessons learned (ๆœ€ๆ–ฐใพใง)

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‚ๅŠ ใ—ใŸๆ•™่จ“ใ‚’ใพใจใ‚ใฆใ„ใใพใ™ใ€‚

ใƒˆใƒƒใƒ—ใƒšใƒผใ‚ธใธ ABC ๅ‚ๅŠ ่จ˜ใธ ARC ๅ‚ๅŠ ่จ˜ใธ

ABC 429-ๆœ€ๆ–ฐ

ABC 429-A

็ท‘่ฝใกใ—ใฆARCใซratedใงๅ‡บใ‚‰ใ‚Œใชใ„ใฎใงใ€ABCใซๆˆปใฃใฆใใŸใ€‚ABC 3ๅฎŒใพใง5:56ใพใงใฎๅฟซ่ตฐใงใ€็ตๅฑ€ABCD 4ๅฎŒใฎๆฐดใƒ‘ใƒ•ใ‚ฉใ ใฃใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

forใƒซใƒผใƒ—ใง็ด ็›ดใซๆ›ธใใ€‚

ABC 429-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$(\sum A) - A_i = M$ ใ‚’็ทๅฝ“ใŸใ‚Šใง่ชฟในใ‚‹ใ€‚

ABC 429-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆ•ฐ $V_i$ ใŒ $C_i$ ๅ€‹ๅ‡บ็พใจใ™ใ‚‹ใ€‚ใ‚ใ‚‹ $i$ ใซใคใ„ใฆใ€ $V_i$ ใ‹ใ‚‰ $(V_i (V_i-1)) / 2$ ๅ€‹ใ€ใใ‚Œไปฅๅค–ใ‹ใ‚‰ $M-C_i$ ๅ€‹้ธใถใ€‚

ABC 429-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆทปใˆๅญ—ใ‚’ๆ•ด็†ใ™ใ‚‹ใฎใซๆ‰‹ใ“ใšใฃใŸใ€‚

$M$ ใŒๅคงใใ„ใฎใง้€ฃๆƒณ้…ๅˆ—ใŒ่ฆใ‚‹ใ€‚

$A$ ใฎๆ˜‡้ †ใซ่ฆ‹ใฆใ€้‡่ค‡็„กใ—ใฎ $i$ ็•ช็›ฎใฎไฝ็ฝฎใ‚’ $P_i$ ใ€ใใฎไฝ็ฝฎใฎไบบๆ•ฐใ‚’ $V_i$ ใจใ™ใ‚‹ใ€‚ไบบๆ•ฐใฎ็ดฏ็ฉๅ’Œใ‚’ $C_i$ ใจใ™ใ‚‹ใ€‚ๅ‘จๅ›žๅ•้กŒใฎๅ…ธๅž‹้€šใ‚Šใ€ $N+1$ ็•ช็›ฎใ‚’1็•ช็›ฎใจใ—ใฆใ€ $P$ ใฏไบŒๅ‘จๅˆ†ใ€ $V$ ใฎ็ดฏ็ฉๅ’Œใ‚‚ไบŒๅ‘จๅˆ†ๆฑ‚ใ‚ใฆใŠใใ€‚

$i$ ็•ช็›ฎใฎไฝ็ฝฎใซๆณจ็›ฎใ™ใ‚‹ใจใ€ $\sum_{j=i}^k V_j$ ใŒ $C$ ไปฅไธŠใซใชใ‚‹ๆœ€ๅฐใฎ $k$ ็•ช็›ฎใ‚’ๆฑ‚ใ‚ใ‚Œใฐใ‚ˆใใ€็ดฏ็ฉๅ’Œใ‚’ไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใจๆฑ‚ใพใ‚‹ใ€‚ใ“ใฎใ‚ˆใ†ใช $i$ ใฏใ€ไฝ็ฝฎ $D_i = P_{i+1} - P_{i}$ ็ฎ‡ๆ‰€ใซๅฝฑ้Ÿฟใ™ใ‚‹ใฎใงใ€็ญ”ใˆใซ $(k-i)D_{i}$ ใ‚’่ถณใ™ใ€‚

ABC 429-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

72ๅˆ†ใ‚ใฃใŸใŒใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซใฏ่งฃใ‘ใšใ€็ฟŒๆœ่งฃใ„ใŸใ€‚

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฎ้–“้•ใฃใŸ่€ƒๅฏŸใ‚’่จ˜ใ™ใ€‚้€ฃ็ตใ—ใฆใ„ใ‚‹ๅฎ‰ๅ…จใช้ ‚็‚นใ‚’ใฒใจใพใจใ‚ใซใ™ใ‚‹ใ€‚้€ฃ็ตใ—ใฆใ„ใ‚‹ๅฑ้™บใช้ ‚็‚นใ‚‚ใฒใจใพใจใ‚ใซใ™ใ‚‹ใ€‚้€ฃ็ตใ—ใฆๅฑ้™บใช้ ‚็‚นใซใคใ„ใฆใ€้šฃๆŽฅใ™ใ‚‹ๅฎ‰ๅ…จใช้ ‚็‚นใ‹ใ‚‰ๅฑ้™บใช้ ‚็‚นใ‚’ๅคšๅœฐ็‚นBFSใ—ใฆใ€ไธ€ใคใพใŸใฏไบŒใคใฎๅฎ‰ๅ…จใช้ ‚็‚นใพใงใฎๆœ€ๅฐ่ท้›ขใ‚’้ซ˜ใ€…2ๅ€‹ๆŒใคใ€‚ใจใ„ใ†ๆ–น้‡ใงๆๅ‡บใ—ใŸใ‚‰WAใฎๅฑฑใŒ่ฟ”ใฃใฆใใŸใ€‚ใ“ใฎๆ–นๆณ•ใฏใ€ใ‚ฐใƒฉใƒ• S-D-S-D ใ‚’ๆญฃใ—ใๆ‰ฑใˆใชใ„ใ€‚ๅ˜˜่งฃๆณ•ใงๆฎ‹ใ‚Šๆ™‚้–“ใ‚’ๅ…จ้ƒจๆบถใ‹ใ—ใŸใ€‚

็ฟŒๆœ่‡ชๅŠ›ACใ—ใŸใŒใ€ๅ…ฌๅผ่งฃ่ชฌ1ใจๆ–นๆณ•ใฏๅŒใ˜ใงใ‚ใ‚‹ใ€‚ใ™ในใฆใฎๅฎ‰ๅ…จใช้ ‚็‚นใ‹ใ‚‰ๅคšๅœฐ็‚นBFSใ—ใฆใ€่ท้›ขใฎไธ‹ไฝ2ไฝใพใงใ‚’ๆŒใฆใฐใ‚ˆใ„ใ€‚ใ“ใ†ๆ›ธใใจ็ฐกๅ˜ใ ใŒใ€ๅฎŸ่ฃ…ใฏใ‹ใชใ‚Šใ‚„ใ‚„ใ“ใ—ใ„ใ€‚ๅŒใ˜้ ‚็‚นใ‹ใ‚‰ใฎ่ท้›ขใฏ้‡่ค‡ใ—ใฆๆŒใŸใชใ„ใ‚ˆใ†ใซๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌ2ใซใ‚ใ‚‹ใจ้€šใ‚Šใ“ใฎๅ•้กŒใ‚’ไนฑๆŠžใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใง ่งฃใ ใ€ใ•ใ‚‰ใซ่„ฑไนฑๆŠžใ™ใ‚‹ใ“ใจใŒ ใงใใ‚‹ ใ€‚ใ“ใ†ใ„ใ†ๅญฆใณใŒใ‚ใ‚‹ใ‹ใ‚‰้ข็™ฝใ„ใ€‚

ABC 430-A

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Cๅ•้กŒใŒๅ…จใใ‚ใ‹ใ‚‰ใšใ€A,B,E,Dใฎ้ †ใซACใ—ใฆ4ๅฎŒใ ใฃใŸใ€‚ใฉใ†ใ—ใฆๆญฃ่งฃ่€…ๆ•ฐใจ็งใซใจใฃใฆใฎ้›ฃๆ˜“ๅบฆใฏใ“ใ†ใ‚‚้€ฃๅ‹•ใ—ใชใ„ใฎใ ใ‚ใ†ใ‹ใ€‚็ท‘diffx2ใ‚’่งฃใ‘ใฆ่Œถdiffใ‚’่ฝใจใ—ใŸใŒใ€ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซ่Œถdiffใ‚’่ฝใจใ—ใŸใฎใฏABCใฏๅˆใ‚ใฆใ€ARCใฏ201-Aไปฅๆฅใงใ‚ใ‚‹ใ€‚

$C \geq A \land D < B$ ใชใ‚‰ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚

ABC 430-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็ทๅฝ“ใŸใ‚Šใงๆฑ‚ใ‚ใ‚‹ใ€‚

ABC 430-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏใฉใ†ใ—ใฆใ„ใ„ใ‹ๅ…จใๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ใ‚ณใƒณใƒ†ใ‚นใƒˆๅพŒใซ็ดฏ็ฉๅ’Œใ€ใจใ„ใ†่จ€่‘‰ใŒใกใ‚‰ใฃใจ่ฆ‹ใˆใŸใฎใงใ€่‡ชๅŠ›ACใฏ่จ€ใ„้ŽใŽใฎๆฐ—ใ‚‚ใ™ใ‚‹ใŒใ€ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซๅพ—็‚นใงใใชใ„ใชใ‚‰่‡ชๅŠ›ใ‚‚ไฝ•ใ‚‚ใชใ„ใ ใ‚ใ†ใ€‚

A ใฎๅ‡บ็พๅ›žๆ•ฐใฎ็ดฏ็ฉๅ’Œใ‚’ $CA_{i} = \sum_{j=1}^{i} S_j IS a$ ใ€ B ใฎๅ‡บ็พๅ›žๆ•ฐใฎ็ดฏ็ฉๅ’Œใ‚’ $CB_{i} = \sum_{j=1}^{j} S_i IS b$ ใจใ™ใ‚‹ใ€‚ $l = 1..N$ ใซใคใ„ใฆใใ‚Œใžใ‚Œไปฅไธ‹ใฎใ‚ˆใ†ใซ่งฃใใ€‚

$l$ ใ‚’่ตท็‚นใซๅฐ‘ใชใใจใ‚‚ $A$ ๅˆ†้‹่ปขใ™ใ‚‹ๆœ€ๅฐๆ™‚้–“ $p$ ใฏใ€ใ‚‚ใ—ใ‚ใ‚‹ใชใ‚‰ $CA_{l-1} + A = CA_{p}$ ใ‚’ๆบ€ใŸใ™ $p$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚ŒใฏไบŒๅˆ†ๆŽข็ดขใงๆฑ‚ใพใ‚‹ใ€‚ใ“ใฎใ‚ˆใ†ใช $p$ ใŒใชใ‘ใ‚Œใฐใ€ $l$ ใซ้–ขใ—ใฆ็ญ”ใˆใฏ0้€šใ‚Šใงใ‚ใ‚‹ใ€‚

$l$ ใ‚’่ตท็‚นใซๅฐ‘ใชใใจใ‚‚ $B$ ๅˆ†ไผ‘ๆ†ฉ้‹่ปขใ™ใ‚‹ๆœ€ๅฐๆ™‚้–“ $q$ ใฏใ€ใ‚‚ใ—ใ‚ใ‚‹ใชใ‚‰ $CB_{l-1} + B = CB_{q}$ ใ‚’ๆบ€ใŸใ™ $p$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚ŒใฏไบŒๅˆ†ๆŽข็ดขใงๆฑ‚ใพใ‚‹ใ€‚ใ“ใฎใ‚ˆใ†ใช $q$ ใŒใชใ‘ใ‚Œใฐ $l \leq r$ ใ‚’ๆบ€ใŸใ™ใ‚ใ‚‰ใ‚†ใ‚‹ $r$ ใŒ็ญ”ใˆใงใ‚ใ‚Šใ€ไพฟๅฎœไธŠ $q = N+1$ ใจใ—ใฆใŠใใ€‚

ไธŠ่จ˜ใฎไธกๆ–นใฎๅˆถ็ด„ใ‚’ๆบ€ใŸใ™ $r$ ใฏใ€ๅฐ‘ใชใใจใ‚‚ $A$ ๅˆ†้‹่ปขใ—ใŸๆ™‚็‚นใ‹ใ‚‰ใ€ๅฐ‘ใชใใจใ‚‚ $B$ ๅˆ†ไผ‘ๆ†ฉ้‹่ปขใ™ใ‚‹ๆ™‚็‚นใฎ็›ดๅ‰ใชใฎใงใ€ $max(0, q - p)$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’็ญ”ใˆใซๅŠ ใˆใ‚‹ใ€‚

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏใ€ $S_l$ ใŒ a ใงๅง‹ใพใ‚‹ๅŒบ้–“ใ ใ‘ใ‚’ๆ•ฐใˆใ‚ˆใ†ใจใ—ใฆๅคฑๆ•—ใ—ใŸใ€‚ $S_l$ ใŒ b ใงๅง‹ใพใ‚‹ๅŒบ้–“ใ‚‚0ใงใชใ„่งฃใŒใ‚ใ‚‹ใ“ใจใซๆฐ—ใŒไป˜ใ‹ใชใ‹ใฃใŸใ€‚ใ“ใ†ใชใฃใŸๅŽŸๅ› ใฏใ€็งใŒๅ•้กŒๆ–‡ใ‚’ใ€Œใƒˆใƒฉใƒƒใ‚ฏ้‹่ปขๆ‰‹ใฏ้‹่ปขใ‚’้–‹ๅง‹ใ—ใŸใ‚‰ใ€่จˆAๅˆ†ไปฅไธŠ้‹่ปขใ™ใ‚‹้š›ใซใฏ่จˆBๅˆ†ไปฅไธŠใฎไผ‘ๆ†ฉใ‚’ๅ–ใ‚‰ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ€ใจ่ชค่ชญใ—ใ€้‹่ปข้–‹ๅง‹ๅ‰ใฎไผ‘ๆ†ฉใ‚‚ๅŒบ้–“ $[l,r]$ ใซๅซใ‚€ใฎใ‚’่ฆ‹่ฝใจใ—ใŸใ‹ใ‚‰ใ ใ€‚ใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใจๅฎŸ่ฃ…ใ‚’้–“้•ใˆใŸใฎใงใฏใชใใ€ๅ•้กŒๆ–‡ใฎๆ„ๅ‘ณใ‚’ๅ–ใ‚Š้•ใˆใŸใ“ใจใŒๆ•—ๅ› ใ ใฃใŸใ€‚

ABC 430-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Eๅ•้กŒใ‚’ACใ—ใฆๆฐ—ๅˆ†ใŒ่ฝใก็€ใ„ใŸใฎใง่งฃใ‘ใŸใ€‚

ๆ„š็›ดใซๅฎŸ่ฃ…ใ™ใ‚‹ใ ใ‘ใง 1460 ms ใงACใ™ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใจใ‹่‰ฒใ€…่€ƒใˆใŸใŒใ€4็ง’ๅˆถ้™ใชใฎใงๅ‡ใฃใŸใ“ใจใ™ใ‚‹ๅฟ…่ฆใฏใชใ‹ใฃใŸใ€‚

ใ“ใ‚Œใพใงๅˆฐ็€ใ—ใŸไบบ(ไบบ0ใ‚’ๅซใ‚€)ใฎไฝ็ฝฎใฎ้ †ๅบไป˜ใ้›†ๅˆใ‚’ $P$ ใจใ™ใ‚‹ใ€‚ไบบ $i$ ใฎ้šฃใฎไบบใจใฎ่ท้›ขใ‚’ $D[i]$ ใจใ™ใ‚‹ใ€‚ใŸใ ใ—้šฃใฎไบบใŒๅฑ…ใชใ„ๅ ดๅˆใฏ $D[i]$ ใ‚’ๅฎš็พฉใ—ใชใ„ใ€‚ใ“ใ‚Œใพใงใฎ็ญ”ใˆใฎ็ทๅ’Œใ‚’ $S$ ใจใ™ใ‚‹ใ€‚

ไบบ $i$ ใŒๅˆฐ็€ใ—ใŸใ‚‰ใ€ $X_i$ ใฎๅ‰ใฎไบบใŒใ‚‚ใ—ใ„ใ‚Œใฐ $a$ ใ€ $X_i$ ใฎๅพŒใฎไบบใŒใ‚‚ใ—ใ„ใ‚Œใฐ $b$ ใจใ—ใฆใ€ไปฅไธ‹ใฎ้€šใ‚Šๆ›ดๆ–ฐใ™ใ‚‹ใ€‚

  • ไบบ $i$ ใจไบบ $a$ ใฎ่ท้›ขใฏ $D = X_{i} - X_{a}$ ใงใ‚ใ‚‹ใ€‚ $D[a] > D$ ใชใ‚‰ไบบ $s$ ใซใจใฃใฆๆœ€ใ‚‚่ฟ‘ใ„ไบบใŒๅค‰ใ‚ใ‚‹ใฎใง $D[a] = i$ ใจใ—ใ€ $S$ ใซ $D - D[a]$ ใ‚’่ถณใ™ใ€‚
  • ไบบ $b$ ใซใคใ„ใฆใ‚‚ๅŒๆง˜ใงใ‚ใ‚‹
  • ไบบ $i$ ใซใคใ„ใฆใฎ่ท้›ขใฏ $D[i] = min(X_{i} - X_{P}, X_{Q} - X_{i})$ ใชใฎใงใ€ $D[i]$ ใ‚’ $a,b$ ใฎ่ฟ‘ใ„ๆ–นใฎไบบใซ่จญๅฎšใ™ใ‚‹ใ€‚ $S$ ใซ $D[i]$ ใ‚’่ถณใ™ใ€‚ $P$ ใซ $X_i$ ใ‚’่ฟฝๅŠ ใ™ใ‚‹ใ€‚

ABC 430-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

C,Dๅ•้กŒใฏใ•ใฃใฑใ‚Šใ‚ใ‹ใ‚‰ใชใ„ใŒใ€Eๅ•้กŒใฏๅ•้กŒๆ–‡ใ‚’่ชญใ‚“ใ ็žฌ้–“ใƒญใƒผใƒชใƒณใ‚ฐใƒใƒƒใ‚ทใƒฅใ ใจๅˆ†ใ‹ใฃใŸใ€‚

$A$ ใ‚’ไบŒๅ‘จใ—ใŸใ‚‚ใฎใ‚’ $A$ ใจๅ†ๅฎš็พฉใ™ใ‚‹ใ€‚ใพใš $B$ ๅ…จไฝ“ใฎใƒใƒƒใ‚ทใƒฅๅ€ค $H$ ใ‚’ๅ–ใ‚‹ใ€‚ใƒใƒƒใ‚ทใƒฅๅ€ค $A[i,i+|B|) = H$ ใจใชใ‚‹ ๆœ€ๅฐใฎ $i$ ใŒใ‚ใ‚Œใฐใใ‚ŒใŒ็ญ”ใˆใงใ€็„กใ‘ใ‚Œใฐ -1 ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

Baseใ‚’ใƒฉใƒณใƒ€ใƒ ๅŒ–ใ—ใ€Modใ‚’ $2^{61}$ ไป˜่ฟ‘ใซใ—ใ€่ค‡ๆ•ฐใฎใƒใƒƒใ‚ทใƒฅใ‚’ใพใจใ‚ใฆๅ–ใ‚‹ใจ ใ“ใ† ใชใ‚‹ใ€‚็ด ๆ•ฐ่กจใฏ Primes just less than a power of two ใฎๅ€คใ‚’ไฝฟใฃใŸใ€‚

ABC 430-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒžใ‚น็›ฎใฎๅ€คใ‚’0-based indexingใง่€ƒใˆใ‚‹ใ€‚ใƒžใ‚นใฎๅ€คใฎไพๅญ˜้–ขไฟ‚ใ‚’ๆœ‰ๅ‘ใ‚ฐใƒฉใƒ•ใซใ™ใ‚‹ใ€‚

$S_i$ ใŒ R ใชใ‚‰ $i$ ใ‹ใ‚‰ $i+1$ ใ€ L ใชใ‚‰ $i+1$ ใ‹ใ‚‰ $i$ ใซๅ‘ใๆœ‰ๅ‘ใ‚ฐใƒฉใƒ•ใ‚’ $G$ ใจใ™ใ‚‹ใ€‚ $G$ ใฎ่พบใ‚’ใ™ในใฆ้€†ๅ‘ใใซใ—ใŸใ‚ฐใƒฉใƒ•ใ‚’ $\bar{G}$ ใจใ™ใ‚‹ใ€‚

$G$ ใซใŠใ„ใฆใ€ใ‚ใ‚‹ $i$ ้ ‚็‚นใซๅˆฐ้”ๅฏ่ƒฝใช้ ‚็‚นๆ•ฐใ‚’ $IN_{i}$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏใƒžใ‚น็›ฎใฎไธฆใณใซใŠใ„ใฆใ€ $i$ ใซๅ…ˆ่กŒใ™ใ‚‹ไป–ใฎ้ ‚็‚นใŒๅฐ‘ใชใใจใ‚‚ $IN_{i}$ ๅ€‹ใจใ„ใ†ๆ„ๅ‘ณใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏใ€ $G$ ใงๅ…ฅๆฌกๆ•ฐใŒ0ใฎ้ ‚็‚นใ‚’่ตท็‚นใซBFSใ™ใ‚‹ใ“ใจใงๆฑ‚ใพใ‚‹ใ€‚ๅฎŸใฏDFSใฎๆ–นใŒ็ด ็›ดใงใ‚ใ‚‹ใ€‚

$\bar{G}$ ใซใŠใ„ใฆใ€ใ‚ใ‚‹ $i$ ้ ‚็‚นใซๅˆฐ้”ๅฏ่ƒฝใช้ ‚็‚นๆ•ฐใ‚’ $OUT_{i}$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏใƒžใ‚น็›ฎใฎไธฆใณใซใŠใ„ใฆใ€ $i$ ใซๅพŒ็ถšใ™ใ‚‹ไป–ใฎ้ ‚็‚นใŒๅฐ‘ใชใใจใ‚‚ $OUT_{i}$ ๅ€‹ใจใ„ใ†ๆ„ๅ‘ณใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏใ€ $\bar{G}$ ใงๅ…ฅๆฌกๆ•ฐใŒ0ใฎ้ ‚็‚นใ‚’่ตท็‚นใซBFSใ™ใ‚‹ใ“ใจใงๆฑ‚ใพใ‚‹ใ€‚

ใ‚ใ‚‹้ ‚็‚น ${i}$ ใซใคใ„ใฆใ€ใƒžใ‚นใฎ็•ชๅทใจใ—ใฆๅ–ใ‚Šใ†ใ‚‹ๅ€คใฏ $[IN_i,N-Out_i)$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅŒบ้–“ๅŠ ็ฎ—้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซไน—ใ›ใ‚‹ใจ็ญ”ใˆใŒๆฑ‚ใพใ‚‹ใ€‚ๅŒบ้–“ๅŠ ็ฎ—้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซไน—ใ›ใ‚‹ใพใงใ‚‚ใชใใ€ใ„ใ‚‚ใ™ๆณ•ใ™ใ‚‹ๆ–นใŒ่จˆ็ฎ—้‡ใŒๅฐ‘ใชใ„ใจๅพŒใง็ŸฅใฃใŸใ€‚

ABC 431-A

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซ A,B,C,Dๅ•้กŒใฎ4ๅฎŒใ€22:59:02ใซEๅ•้กŒใ‚’ACใ—ใŸใ€‚Eๅ•้กŒใฏๅ‰ฒใจๆ—ฉใๆ–น้‡ใŒ็ซ‹ใฃใŸใŒใ€่ฉฐใ‚ใŒ็”˜ใใฆ69ๅˆ†ใงๅฎŸ่ฃ…ใŒ็ต‚ใ‚ใ‚‰ใชใ‹ใฃใŸใ€‚็”ป็ซœ็‚น็›ใ‚’ๆฌ ใใจใฏใ“ใฎใ“ใจใ‹ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

max(0, H-B) ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 431-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้ƒจๅ“ใŒไป˜ใ„ใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹ใ‚’ $T_i$ ใงไฟๆŒใ—ใฆใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ™ใ‚‹ใ€‚ $T[i]$ ใฏ้ƒจๅ“ $i$ ใ‚’ใƒญใƒœใƒƒใƒˆใซๅ–ใ‚Šไป˜ใ‘ใฆใ„ใ‚Œใฐ1, ใใ†ใงใชใ‘ใ‚Œใฐ0ใงใ‚ใ‚‹ใ€‚

$T[P_i] = 0$ ใชใ‚‰ใƒญใƒœใƒƒใƒˆใฎ้‡ใ•ใŒ $W[P_i]$ ๅข—ใˆใฆใ€ $T[P_i] = 1$ ใชใ‚‰ใƒญใƒœใƒƒใƒˆใฎ้‡ใ•ใŒ $W[P_i]$ ๆธ›ใ‚‹ใ€‚ใใฎๅพŒ $T[P_i] = 1 - T[P_i]$ ใซใ™ใ‚‹ใ€‚

ABC 431-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้ ญใƒ‘ใƒผใƒ„ใŒ่ปฝใ„้ †ใซใ€้‡ใ• $H_i$ ไปฅไธŠใฎ $B_j$ ใ‚’็ต„ใฟๅˆใ‚ใ›ใ‚‹greedyใงใ‚ˆใ„ใ€‚ $H$, $B$ ใ‚’ใใ‚Œใžใ‚Œๆ˜‡้ †ใซใชใ‚‰ในใฆๅฐบๅ–ใ‚Šๆณ•ใง่งฃใใ€‚

ๅ…ฌๅผ่งฃ่ชฌใฏๅฐบๅ–ใ‚Šๆณ•ใ‚ˆใ‚Šใšใฃใจ็ฐกๅ˜ใงใ‚ใ‚‹ใ€‚

ABC 431-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅˆถ็ด„ใ‚’่ฆ‹ๅˆ‡ใ‚‹ใฎใŒ้…ใใฆๆ™‚้–“ใ‚’็„ก้ง„ใซใ—ใŸใ€‚

$NW \leq C = 250000$ ใ‚ˆใ‚Šใ€ไฝ“ใฎ้‡ใ• $WB$ ใ‹ใ‚‰้ ญใฎ้‡ใ• $WH$ ใ‚’ๅผ•ใ„ใŸๅทฎ $D = WB - WH$ ใฏใ€ $-C \leq D \leq C$ ใซใชใ‚‹ใ€‚ $C$ ใ‚’ๅฎšๆ•ฐใจใ—ใฆๅ€™่ฃœใ‚’ๅ…จ้ƒจๆŒใคDPใง่งฃใใ€‚

$DP[i][D]$ ใฏใ€ใƒญใƒœใƒƒใƒˆใซ้ƒจๅ“ $i$ ใพใงๅ–ใ‚Šไป˜ใ‘้‡ใ•ใฎๅทฎใŒ $D$ ใฎๆ™‚ใฎใ€ใ†ใ‚Œใ—ใ•ใฎๆœ€ๅคงๅ€คใจใ™ใ‚‹ใ€‚ $DP[][] = -\infty$ , $DP[0][0] = 0$ ใงใ‚ใ‚‹ใ€‚ๅพŒใฏ้ ญใจไฝ“ใซ้ƒจๅ“ $i$ ใ‚’ๅ–ใ‚Šไป˜ใ‘ใŸใจใใฎใ†ใ‚Œใ—ใ•ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ $j = -C..C$ ใจใ—ใฆไปฅไธ‹ใฎใ‚ˆใ†ใซๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ใŸใ ใ—ๆทปใˆๅญ—ใŒ็ฏ„ๅ›ฒๅค–ใชใ‚‰็„ก่ฆ–ใ™ใ‚‹ใ€‚

  • $DP[i+1][j-W_i] = min(DP[i+1][j-W_i], DP[i][j] + H_i)$
  • $DP[i+1][j+W_i] = min(DP[i+1][j+W_i], DP[i][j] + B_i)$

็ญ”ใˆใฏ $max(DP[N][0..C])$ ใงใ‚ใ‚‹ใ€‚ๅฎŸ่ฃ…ไธŠใฏๆทปใˆๅญ—ใซ $C$ ไธ‹้ง„ใ‚’ๅฑฅใ‹ใ›ใฆใŠใใ€‚

ABC 431-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

E,Fๅ•้กŒใฉใกใ‚‰ใซใ—ใ‚ˆใ†ใ‹่ฟทใฃใŸๆœซใ€Eๅ•้กŒใซๆ™‚้–“ใ‚’ๆŒฏใฃใŸใ€‚ใใฎๅˆคๆ–ญใฏๆญฃใ—ใ‹ใฃใŸใŒใ€ๅฎŸ่ฃ…ๆ–น้‡ใ‚’้–“้•ใˆใŸใ€‚

็ต่ซ–ใ‹ใ‚‰่จ€ใˆใฐใ€01-BFSใ‹ใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใง่งฃใ‘ใ‚‹ใ€‚ใƒžใ‚นใงใฏใชใใƒžใ‚นใ‚’ๅ›ฒใ‚€่พบใซใคใ„ใฆไบ’ใ„ใฎ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏใƒžใ‚นใฎ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚ˆใ†ใจใ—ใฆๆญฃ่งฃใ‚’ๅ‡บใ›ใชใ‹ใฃใŸใ€‚

่พบใฎ็•ชๅทใ‚’ไป˜ใ‘ใ‚‹ใ€‚็ธฆใฎ่พบใฎๆ•ฐใฏ $V=(W+1)H$ ๆœฌใงใ‚ใ‚‹ใ€‚0-based indexingใงใ€ใƒžใ‚น $(y,x)$ ใ‚’ๅ›ฒใ‚€่พบใซใคใ„ใฆใ€ๅทฆ่พบใ‚’ $y(W+1)+x$ ใ€ๅณ่พบใ‚’ $y(W+1)+x+1$ ใ€ไธŠ่พบใ‚’ $V+yW+x$ ใ€ไธ‹่พบใ‚’ $V+yW+x+w$ ใจใ„ใ†็•ชๅทใงๅไป˜ใ‘ใ‚‹ใ€‚

่พบใฎ้–“ใ‚’็งปๅ‹•ใ™ใ‚‹ใ‚ณใ‚นใƒˆใ‚’ใ€้กใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹ใ‚ณใ‚นใƒˆใจใฟใชใ™ใ€‚้กใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹ใชใ‚‰1ใ€ๅˆ‡ใ‚Šๆ›ฟใˆใชใ„ใชใ‚‰0ใงใ‚ใ‚‹ใ€‚ใƒžใ‚น $(y,x)$ ๅ†…ใ‚’็งปๅ‹•ใ™ใ‚‹ใ‚ณใ‚นใƒˆใ‚’ใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซๅฎš็พฉใ™ใ‚‹ใ€‚

  • ใƒžใ‚นใฎไธŠ่พบใ‹ใ‚‰
    • ไธ‹่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ A ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ๅณ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ B ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ๅทฆ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ C ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
  • ใƒžใ‚นใฎไธ‹่พบใ‹ใ‚‰
    • ไธŠ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ A ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ๅทฆ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ B ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ๅณ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ C ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
  • ใƒžใ‚นใฎๅทฆ่พบใ‹ใ‚‰
    • ๅณ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ A ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ไธ‹่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ B ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ไธŠ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ C ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
  • ใƒžใ‚นใฎๅณ่พบใ‹ใ‚‰
    • ๅทฆ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ A ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ไธŠ่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ B ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹
    • ไธ‹่พบใซ็งปๅ‹•ใ™ใ‚‹ใจใใ€ใƒžใ‚นใŒ C ใชใ‚‰ใ‚ณใ‚นใƒˆ0ใ€ใใ†ใงใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ1ใงใ‚ใ‚‹

ใ“ใฎใ‚ˆใ†ใซ่พบใ‚’ๅผตใฃใŸใ‚ฐใƒฉใƒ•ใ‚’ใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใ‹01-BFSใ™ใ‚‹ใจใ€ใ‚ฐใƒฉใƒ•ใฎ้ ‚็‚น $0$ ใ‹ใ‚‰้ ‚็‚น $V-1$ ใพใงใฎๆœ€ๅฐ่ท้›ขใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 432-A

ๅ‚ๅŠ ใ›ใš็ฟŒๆœ่งฃใ„ใŸใ€‚็›ธๅค‰ใ‚ใ‚‰ใšใ€ๆญฃ่งฃ่€…ๆ•ฐใจ็งใซใจใฃใฆใฎ้›ฃๆ˜“ๅบฆใซ้€ฃๅ‹•ๆ€งใŒใชใ„ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$A,B,C$ ใ‚’้™้ †ใซๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 432-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$S$ ใฎๅ„ๆ–‡ๅญ—ใฎ้ †ๅˆ—ใ‚’ๆ˜‡้ †ใซๆคœ็ดขใ—ใ€ๅ…ˆ้ ญใŒ 0 ใงใชใ„ๆœ€ๅˆใฎๆ–‡ๅญ—ๅˆ—ใ‚’่ฟ”ใ™ใ€‚้ †ๅˆ—ใฏ $5!=120$ ้€šใ‚Šใ—ใ‹ใชใ„ใฎใงๅ…จๆŽข็ดขใงใ‚ˆใ„ใ€‚

ABC 432-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

D,Eๅ•้กŒใ‚ˆใ‚Šๆ™‚้–“ใŒๆŽ›ใ‹ใฃใŸใ€‚

$A$ ใ‚’ๆ˜‡้ †ใซไธฆในใ‚‹ใ€‚ใคใพใ‚Š $A_1$ ใ‚’ๆœ€ๅฐใซใ™ใ‚‹ใ€‚ $D = Y - X$ ใจใ™ใ‚‹ใ€‚

ๅญไพ›1ใฏๅคงใใช้ฃดใ—ใ‹ๆŒใฃใฆใ„ใชใ„ใจไปฎๅฎšใ™ใ‚‹ใ€‚ๅฎŸใฏใ“ใ†ไปฎๅฎšใ—ใฆใ„ใ„ใ€‚ $A_i \geq A_1$ ใจใ—ใฆใ€้‡ใ•ใŒๅŒใ˜ใพใพ้ฃดใ‚’ใŸใใ•ใ‚“ๆŒใคใซใฏใ€ๅคงใใช้ฃดใ‚’ๅฐใ•ใช้ฃดใซๆŒใกๆ›ฟใˆใ‚‹ใ—ใ‹ใชใ„ใ€‚ $V = A_i - A_1$ ใจใ™ใ‚‹ใ€‚

ๅคงใใช้ฃด $U$ ๅ€‹ใ‚’ๅฐใ•ใช้ฃด $U+V$ ๅ€‹ใซ็ฝฎใๆ›ใˆใ‚‹ใ€‚ใ“ใฎใจใใ€ $YU = X(U+V)$ ใŒๆˆใ‚Š็ซ‹ใคใ€‚ๅผๅค‰ๅฝขใ—ใฆใ€ $U = XV/D$ ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆใ€ $XV$ ใ‚’ $D$ ใงๅ‰ฒใ‚Šๅˆ‡ใ‚‹ใ“ใจใŒใงใใชใ‘ใ‚Œใฐ่งฃ็„กใ—ใงใ‚ใ‚‹ใ€‚ใพใŸ $U > A_1$ ใ‚‚่งฃ็„กใ—ใงใ‚ใ‚‹ใ€‚่งฃใŒใ‚ใ‚‹ใชใ‚‰ๅญไพ› $i$ ใซใคใ„ใฆใ€ $A_1 - U$ ๅ€‹ใฎๅคงใใช้ฃดใ‚’ๆŒใคใ€‚

ใ“ใ†ใ—ใฆๆฑ‚ใ‚ใŸใ€ใ™ในใฆใฎๅญไพ›ใฎใ€ๅคงใใช้ฃดใฎๆ•ฐใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 432-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ไธ€ๅบฆๅˆ†ใ‹ใ‚ŒใŸ้€ฃ็ตๆˆๅˆ†ใŒใ€ๅพŒใ‹ใ‚‰ใคใชใŒใ‚‹ใ“ใจใฏใชใ„ใ€‚ใ‚ˆใฃใฆ $N$ ๅ›žใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ™ใ‚‹ใจใ€ $S = 2^{N} - 1$ ๅ€‹ใฎ็Ÿฉๅฝขใซๅˆ†ใ‹ใ‚Œใ‚‹ใ€‚ใ‚ใจใฏ็ŸฉๅฝขๅŒๅฃซใŒ้‡ใชใ‚‹ใ‹ใฉใ†ใ‹ๅˆคๅฎšใ—ใ€้‡ใชใ‚‹ใชใ‚‰้€ฃ็ตๆˆๅˆ†ใซใ™ใ‚‹ใ€‚้€ฃ็ตๆˆๅˆ†ใซใ‚ใ‚‹็Ÿฉๅฝขใฏ้‡ใชใ‚‰ใชใ„ใฎใงใ€้€ฃ็ตๆˆๅˆ†ใซใ‚ใ‚‹็Ÿฉๅฝขใฎ้ข็ฉใฎๅ’ŒใŒ้€ฃ็ตๆˆๅˆ†ใฎ้ข็ฉใงใ‚ใ‚‹ใ€‚

$S(S-1)/2 = 134209536$ ๅ›žใฎๅˆคๅฎšใŒ้–“ใซๅˆใ†ใจๆ€ใฃใŸใ‚‰ใ€ๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹้€šใ‚Šใ€ๅˆ†ๅ‰ฒๅพŒใฎ็Ÿฉๅฝขใฏใจใฆใ‚‚ๅฐ‘ใชใ„ใฎใงใ€1ใƒŸใƒช็ง’ใง่งฃใ‘ใ‚‹ใ€‚Xๅบงๆจ™ใงไธฆใณๆ›ฟใˆใฆๅŒบ้–“ๅˆ†ๅ‰ฒๅ•้กŒใ‚’ๅ™จ็”จใซ่งฃใ“ใ†ใจใ—ใฆๆ™‚้–“ใ‚’ ๆบถใ‹ใ—ใŸ ใ€‚ใƒขใƒผใƒˆใƒณ้ †ๅบใฎใ‚ˆใ†ใชๅ‡ใฃใŸใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใฏไธ่ฆใ ใฃใŸใ€‚

ABC 432-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Cๅ•้กŒใฏๅˆ†ใ‹ใ‚‰ใชใ„ใ€Dๅ•้กŒใฏๅพŒๅ›žใ—ใซใ—ใŸใŒใ€Eๅ•้กŒใฏๅˆ†ใ‹ใฃใŸใ€‚

Fenwick treeใซใ€ๆ•ฐ $a =A_i$ ใŒไฝ•ๅ€‹ไน—ใ‚‹ใ‹ใจใ€ $a$ ใฎๅŒบ้–“ๅ’Œใ‚’ไน—ใ›ใฆใ€ใ‚ฏใ‚จใƒชใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ€‚

$C[i]$ ใฏใ€ $A$ ใซๆ•ฐ $i$ ใŒไฝ•ๅ€‹ไน—ใฃใฆใ„ใ‚‹ใ‹ไฟๆŒใ™ใ‚‹ใ€‚ $S[i]$ ใฏใ€ $A$ ใซๆ•ฐ $i$ ใŒ $c$ ๅ€‹ไน—ใฃใฆใ„ใ‚‹ใชใ‚‰ $ic$ ใจใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช1ใซใฏใ“ใ†็ญ”ใˆใ‚‹ใ€‚ๆ—ง $a = A_i$ ใจใ—ใฆใ€ $C[a]$ ใ‚’1ๆธ›ใ‚‰ใ—ใ€ $S[a]$ ใ‚’ $a$ ๆธ›ใ‚‰ใ—ใ€ $C[y]$ ใ‚’1ๅข—ใ‚„ใ—ใ€ $S[y]$ ใ‚’ $y$ ๆธ›ใ‚‰ใ—ใ€ $A_i = y$ ใจใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช2ใซใฏใ“ใ†็ญ”ใˆใ‚‹ใ€‚ $r < l$ ใชใ‚‰็ญ”ใˆใฏ $l \times N$ ใงใ‚ใ‚‹ใ€‚ $l \leq r$ ใชใ‚‰ไปฅไธ‹ใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

  • $r$ ใ‚ˆใ‚Šๅคงใใ„ๆ•ฐใซใคใ„ใฆใฎๅ’Œ $C[r+1..] \times r$
  • $l$ ใ‚ˆใ‚Šๅฐใ•ใ„ๆ•ฐใซใคใ„ใฆใฎๅ’Œ $C[0..l-1] \times l$
  • $l$ ไปฅไธŠ $r$ ไปฅไธ‹ใฎๆ•ฐใซใคใ„ใฆใฎๅ’Œ $S[l..r]$

ABC 433-A

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‡บใฆใ€A,B,C,D ใฎ4ๅฎŒใ ใฃใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Aๅ•้กŒใซใ—ใฆใฏใจใฆใ‚‚้›ฃใ—ใ„ใ€‚

$P \geq 0$ ๅนด็ตŒ้Žใ—ใŸใจใ—ใฆใ€ $X+P = (Y+P)Z$ ใงใ‚ใ‚‹ใ€‚ๅผๅค‰ๅฝขใ—ใฆใ€ $X-Y = P(Z-1)$ ใงใ‚ใ‚‹ใ€‚ $D = X - Y$ ใจใ—ใฆใ€ $D$ ใ‚’ $Z-1 > 0$ ใงๅ‰ฒใ‚Šๅˆ‡ใ‚Œใชใ‘ใ‚Œใฐ็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚ $(D / Z-1)Z < X$ ใชใ‚‰ๆญณใ‚’ๅ–ใ‚Šใ™ใŽใฆใ„ใ‚‹ใฎใงใ€็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚ใใ‚Œไปฅๅค–ใฎๅ ดๅˆใฏ Yes ใงใ‚ใ‚‹ใ€‚

ๅผใ‚’ไธŠๆ‰‹ใๆ•ด็†ใ™ใ‚Œใฐๅ…ฌๅผ่งฃ่ชฌ้€šใ‚Šใ€ $P = (X - YZ)/(Z-1) \land P \geq 0$ ใจๅˆ†ใ‹ใ‚‹ใ€‚็„ฆใฃใฆใƒ‘ใƒ‹ใƒƒใ‚ฏใซใชใ‚Šใ‹ใ‘ใŸใ€‚

ABC 433-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Aๅ•้กŒใจใฏ้•ใฃใฆใฟใฆใ™ใ่งฃใ‘ใŸใ€‚ $O(N^2)$ ใฎ็ทๅฝ“ใŸใ‚Šใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚

ABC 433-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Aๅ•้กŒใจใฏ้•ใฃใฆใฟใฆใ™ใใ‚ใ‹ใฃใŸใ€‚1122ๆ–‡ๅญ—ๅˆ—ใฎ1ใซ็›ธๅฝ“ใ™ใ‚‹ๆ–‡ๅญ—ใฎๆœ€ใ‚‚ๅณใฎไฝ็ฝฎใคใพใ‚Šๅ€คใŒๅˆ‡ใ‚Šๆ›ฟใ‚ใ‚‹็›ดๅ‰ใฎไฝ็ฝฎ $i$ ใ‚’ๅ›บๅฎšใ™ใ‚‹ใ€‚

  • $S[i] + 1 \neq S[i+1]$ ใชใ‚‰ใใฎไฝ็ฝฎใง1122ๆ–‡ๅญ—ๅˆ—ใฏไฝœใ‚Œใชใ„
  • ใใ†ใงใชใ‘ใ‚Œใฐๅทฆๅณใฎ1122ๆ–‡ๅญ—ๅˆ—ใ‚’ไผธใฐใ›ใ‚‹ใ ใ‘ไผธใฐใ—ใฆๆ•ฐใˆใ‚‹

$i = 1..(N-1)$ ใ‚’็ทๅฝ“ใŸใ‚Šใ—ใฆใ‚‚ใ€1122ๆ–‡ๅญ—ๅˆ—ใฏไบ’ใ„ใซ้‡ใชใ‚‰ใชใ„ใฎใง $O(N)$ ใงๆฑ‚ใพใ‚‹ใ€‚

ABC 433-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

F,E,Dๅ•้กŒใฎ้ †ใซใฟใŸใŸใ‚ใซ็€ๆ‰‹ใŒ้…ใ‚Œใ€ๅฎŸ่ฃ…ใ‚’้–“้•ใˆใฆ2ใƒšใƒŠ่ฟ”ใฃใฆใใŸใ€‚็—›ใ™ใŽใ‚‹ใ€‚

ๅ‰ๅ‡ฆ็†ใจใ—ใฆใ€ $x$ ใฎ $w$ ๆกใจใ€ $M$ ใงๅ‰ฒใฃใŸไฝ™ใ‚Š $r = xModM$ ใ‚’ๆ•ฐใˆใ‚‹ใ€‚

ๅŸบๆœฌ็š„ใช่€ƒใˆๆ–นใฏใ€ใ‚ใ‚‹ $x$ ใซใคใ„ใฆใ€ $r = xModM$ ใชใ‚‰ $p = (M-r)modM$ ใซ่ฉฒๅฝ“ใ™ใ‚‹ $y$ ใฎๅ€‹ๆ•ฐใ‚’ๆ•ฐใˆใฆ็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๆ‹กๅผตใ—ใฆใ€ๆกๆ•ฐ $w=1..10$ ๆกใซใคใ„ใฆใ€ $r = (x \times 10^w)modM$ ใฎใจใใซไฝ™ใ‚ŠใŒ $p = (M-r)modM$ ใ‹ใค $w$ ๆกใจใชใ‚‹ๆ•ฐใฎๅ€‹ๆ•ฐใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $x$ ใจๆกๆ•ฐใซใคใ„ใฆๅ…จๆŽข็ดขใ™ใ‚‹ใจ็ญ”ใˆใŒๆฑ‚ใพใ‚‹ใ€‚

std::map ใซๅฏพใ™ใ‚‹ aMap[key] ใฏใ€ aMap ใซ key ใŒ็„กใ„ใจใใฎๅ ดใง่ฆ็ด ใ‚’ไฝœใ‚‹ใ€‚ใ“ใ‚ŒใŒๅŽŸๅ› ใงTLEใŒ็™บ็”Ÿใ—ใฆ2ใƒšใƒŠ้ฃŸใ‚‰ใฃใŸใ€‚ std::map::at ใ‚’ไฝฟใฃใฆๆ›ธใ็›ดใ—ใŸใ‚‚ใฎใŒ ใ“ใกใ‚‰ ใ€‚

  • C++ใฎ std::map::operator[] ใฏใ€ใ‚ญใƒผใŒใชใ‘ใ‚Œใฐใใฎๅ ดใงๆŒฟๅ…ฅใ™ใ‚‹ใ€‚้žconstใชใฎใงใ€ๅณ่พบใซ็ฝฎใ„ใŸใจใใ‚‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใŒๅฎŸ่กŒใ•ใ‚ŒใฆๆŒฟๅ…ฅใ•ใ‚Œใ‚‹ใ€‚
  • C++ใฎ std::map::at ใฏใ€ใ‚ญใƒผใŒใชใ‘ใ‚Œใฐไพ‹ๅค–ใ‚’ๅ‡บใ™ใ€‚ๅ…ฅๅŠ›ไพ‹1ใŒๅคฑๆ•—ใ™ใ‚‹ใฎใงใ€ใ“ใ“ใฏ std::map::contains ใŒๅฟ…่ฆใชใฎใ ใจๅˆ†ใ‹ใ‚‹ใ€‚ std::map ใ‚’ไบŒๅบฆ่ตฐๆŸปใ™ใ‚‹ใฎใฏๆ™‚้–“ใฎ็„ก้ง„ใชใฎใงใ€ๅฎŸ่กŒๅŠน็އใ‚’่€ƒใˆใŸใ‚‰ใ‚คใƒ†ใƒฌใƒผใ‚ฟใ‚’ไฝฟใ„ใพใ‚ใ™ใฎใŒๆญฃใ—ใ„ใŒใ€ไบŒๅบฆ่ตฐๆŸปใ—ใฆใ‚‚TLEใ—ใชใ„ใฎใงใ‚ˆใ—ใจใ™ใ‚‹ใ€‚

ABC 433-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ใจไธ€ๆญฉ่€ƒๅฏŸใŒ่ถณใ‚Šใชใ‹ใฃใŸใ€‚

$X$ ใซ้‡่ค‡ใŒใ‚ใ‚Œใฐ็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚ $Y$ ใซ้‡่ค‡ใŒใ‚ใ‚Œใฐ็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅฟ˜ใ‚Œใ‚Œใ‚‹ใจ4 WAsใ™ใ‚‹ใ€‚ใใ‚Œใจ $X,Y$ ใฎๆœ€ๅคงๅ€คใŒ $HW$ ๆœชๆบ€ใชใ‚‰็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚

$X$ ใŒ้™้ †ใซใชใ‚‹ใ‚ˆใ†ใซ่กŒใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใฆ่€ƒใˆใฆๆง‹ใ‚ใชใ„ใ€‚ๅ‡บๅŠ›ๆ™‚ใซ่กŒๅ…ฅใ‚Œๆ›ฟใˆใฎ้€†ๅค‰ๆ›ใ‚’ใ™ใ‚Œใฐใ‚ˆใ„ใ€‚ๅŒๆง˜ใซ $Y$ ใŒ้™้ †ใซใชใ‚‹ใ‚ˆใ†ใซๅˆ—ใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใฆ่€ƒใˆใฆๆง‹ใ‚ใชใ„ใ€‚ไปฅไธ‹ใ€ๅ…ฅใ‚Œๆ›ฟใˆๅพŒใฎ่กŒๅˆ—ใง่€ƒใˆใ‚‹ใ€‚ใพใ ไฝฟใฃใฆใ„ใชใ„่ฆ็ด ใ‚’ $S = 1..(HW)$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚

$a = X_i = Y_j$ ใช่ฆ็ด ใŒใ‚ใ‚Œใฐใ€ $A_{ij} = a$ ใซใ™ใ‚‹ใ€‚ใใ‚Œไปฅๅค–ใฎ $X_i$ ใฎ่ฆ็ด ใฏ $A_{i1}$ ใซ็ฝฎใใ€‚ใใ‚Œไปฅๅค–ใฎ $Y_j$ ใฎ่ฆ็ด ใฏ $A_{1j}$ ใซ็ฝฎใใ€‚็ฝฎใ„ใŸ่ฆ็ด ใ‚’ $S$ ใ‹ใ‚‰ $a$ ใ‚’้™คใใ€‚

ไฝ™ใฃใŸ่กŒๅˆ—่ฆ็ด ใซ $S$ ใ‚’ใ€ไธ‹ใฎ่กŒใ‹ใ‚‰ไธŠใฎ่กŒใซใ€ๅŒไธ€่กŒใฏๅณใฎๅˆ—ใ‹ใ‚‰ๅทฆใฎๅˆ—ใซๅ‘ใ‹ใฃใฆ็ฝฎใ„ใฆใ„ใใ€‚ $A_{ij}$ ใฎ่ฆ็ด ใฏใ€ $S$ ใฎ $min(X_i,Y_j)$ ไปฅไธ‹ใฎๆœ€ๅคง่ฆ็ด ใซใ™ใ‚‹ใ€‚็ฝฎใ„ใŸใ‚‰ $S$ ใ‹ใ‚‰้™คใใ€‚ใ“ใ‚ŒใŒๅˆ†ใ‹ใ‚‰ใšใ€ๅ˜ใซ1ใ‹ใ‚‰้ †ใซ็ฝฎใ„ใฆใ„ใฃใŸใ‚‰ 11 WAsใŒ่ฟ”ใฃใฆใใŸใ€‚

ไธŠ่จ˜ใฎ้€šใ‚Šใซ่กŒๅˆ—่ฆ็ด ใ‚’ๅŸ‹ใ‚ใฆใ€ๅˆถ็ด„ใ‚’ๆบ€ใŸใ—ใŸใ‚‰ Yes ใจ่กŒๅˆ—ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚ๅˆถ็ด„ใ‚’ๆบ€ใŸใ•ใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚

ABC 433-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

่งฃ่ชฌใ‚’่ฆ‹ใฆๅฎŸ่ฃ…ใ—ใŸใ€‚ใ“ใฎ็™บๆƒณใฏ็„กใ‹ใฃใŸใ€‚

ABC 434-A

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‡บใฆใ€A,B,C,D ใฎ4ๅฎŒใ ใฃใŸใ€‚Cๅ•้กŒใฎ็ญ”ใˆใŒๅˆใ‚ใšใƒ‘ใƒ‹ใƒƒใ‚ฏใซใชใฃใฆ4ใƒšใƒŠใ—ใฆใ—ใพใฃใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้ขจ่ˆนใ‚’ $S$ ๅ€‹ใจใ—ใฆใ€ $SB > 1000W$ ใ‚’ๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚

ABC 434-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็จฎ้กž $i$ ใฎๅคงใใ•ใฎๅˆ่จˆ $W_i$ ใจใ€ๅ€‹ไฝ“ๆ•ฐ $C_i$ ใ‚’ๆฑ‚ใ‚ใ€ $W_i/C_i$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 434-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Cๅ•้กŒใฎWAใŒๅ–ใ‚Œใšใ€Dๅ•้กŒใ‚’ๅ…ˆใซ่งฃใ„ใŸใ€‚4ใƒšใƒŠใ—ใฆๅคงใใ้ †ไฝใŒไธ‹ใŒใฃใŸใ€‚

ๆœ€ๅˆใฎๅŒบ้–“ใ‚’ $[H,H]$ ใจใ™ใ‚‹ใ€‚ๅพŒใ‚ใ‹ใ‚‰่€ƒใˆใ‚‹ใ€‚ๅพŒใฎๅŒบ้–“ $[L_{i+1}, R_{i+1}]$ ใŒใ‚ใ‚‹ใจใ™ใ‚‹ใ€‚ใใฎใฒใจใคๅ‰ใพใงใฎๅˆฐ้”ๆ™‚้–“ใฏ $D = T_{i+1} - T_{i}$ ใงใ‚ใ‚‹ใ€‚

ๅพŒใฎๅŒบ้–“ใซๆฅใ‚‹ใ“ใจใŒใงใใ‚‹ๅ‰ใฎๅŒบ้–“ใฏ $[max(0, L_{i+1} - D, R_{i+1} + D]$ ใงใ‚ใ‚‹ใ€‚ใ“ใฎๅŒบ้–“ใจ $[L_{i}, R_{i}]$ ใฎๅˆถ็ด„ใฎ้‡ใชใ‚Š $S = [L_{o}, R_{o}]$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚้‡ใชใ‚ŠใŒ็ฉบใชใ‚‰็ญ”ใˆใฏ No ใงใ‚ใ‚‹ใ€‚ใŸใ ใ—ไธ€็‚นๅŒบ้–“ใฏ่ชใ‚ใ‚‹ใ€‚็ฉบใงใชใ‘ใ‚Œใฐ $S$ ใ‚’ใ“ใฎๅ‰ใฎๅŒบ้–“ใจ่ชญใฟๆ›ฟใˆใฆใ€ๅŒๆง˜ใฎๅ‡ฆ็†ใ‚’็นฐใ‚Š่ฟ”ใ™ใ€‚

$S$ ใ‚’ใ“ใฎๅ‰ใฎๅŒบ้–“ใจ่ชญใฟๆ›ฟใˆใ‚‹ๅ‡ฆ็†ใ‚’ๅฟ˜ใ‚Œใฆใ‚‚ใ€ๅ…ฅๅŠ›ไพ‹ใฏ้€šใฃใฆใ—ใพใ†ใ€‚ใใฎใŸใ‚้–“้•ใ„ใซใชใ‹ใชใ‹ๆฐ—ใŒไป˜ใ‹ใชใ‹ใฃใŸใ€‚ใ“ใฎๅ‹˜้•ใ„ใง4ใƒšใƒŠใ—ใ€ใ—ใ‹ใ‚‚Eๅ•้กŒใงๅ‹˜้•ใ„ใŒๆ‚ชๅŒ–ใ™ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹้€šใ‚Šใ€ ๅ‰ใ‹ใ‚‰ๅพŒใ‚ ใงใ‚‚่งฃใ‘ใ‚‹ใ—ใ€ใใฎๆ–นใŒๅฎŸ่ฃ…ใฏๆฅฝใงใ‚ใ‚‹ใ€‚

ABC 434-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ใ‚‹ใƒžใ‚นใซ้›ฒใŒไฝ•ๅ€‹้‡ใชใฃใฆใ„ใ‚‹ใ‹ $C[2000][2000]$ ใฏใ€ $\pm 1$ ใฎไบŒๆฌกๅ…ƒใ„ใ‚‚ใ™ๆณ•ใงๆฑ‚ใพใ‚‹ใ€‚ $C[u][l]$ ใง1่ถณใ—ใ€ $C[u][r+1]$ ใง1ๅผ•ใใ€ $C[d+1][l]$ ใง1ๅผ•ใใ€ $C[d+1][r+1]$ ใง1่ถณใ™ใ€‚ใพใšๆจชๆ–นๅ‘ใซใ„ใ‚‚ใ™ๆณ•ใ—ใฆใ€ๆฌกใซ็ธฆๆ–นๅ‘ใซใ„ใ‚‚ใ™ๆณ•ใ™ใ‚‹ใจๅ…จไฝ“ใŒๆฑ‚ใพใ‚‹ใ€‚

ๆฌกใซใ€้›ฒใŒๅฐ‘ใชใใจใ‚‚ไธ€ใค้‡ใชใฃใฆใ„ใ‚‹ใƒžใ‚นใฎ็ทๆ•ฐ $S$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

ใ‚ใ‚‹ใƒžใ‚นใซใ‚ใ‚‹้›ฒใฎ็•ชๅทใฎๅ’Œ $W[2000][2000]$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏ้›ฒใฎ็•ชๅทใ‚’ $i$ ใจใ—ใฆใ€ $\pm (i + 3 \times 10^{5})$ ใฎไบŒๆฌกๅ…ƒใ„ใ‚‚ใ™ๆณ•ใงๆฑ‚ใพใ‚‹ใ€‚ใ‚ชใƒผใƒใƒผใƒ•ใƒญใƒผใ—ใชใ„ใ‚ˆใ†ใซๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹ใŒใ€ๅฎŸใฏไธ‹้ง„ใ‚’ๅฑฅใ‹ใ›ใ‚‹ๅฟ…่ฆใฏใชใ„ใ€‚

้›ฒใŒ1ๅ€‹ใ ใ‘้‡ใชใฃใฆใ„ใ‚‹ใƒžใ‚นใซใคใ„ใฆใ€ใใฎ้›ฒใŒไฝ•ใ‹ใฏ $i = W[2000][2000] - 3 \times 10^{5}$ ใงๆฑ‚ใพใ‚‹ใ€‚ใ‚ˆใฃใฆใ‚ใ‚‹้›ฒ $i$ ใ‚’้™คใ„ใŸใจใใ€ $D[i]$ ๅ€‹ใƒžใ‚นใŒ็ฉบใใจใ„ใ†ใฎใ‚’1ๅข—ใ‚„ใ™ใ€‚

็ญ”ใˆใฏ้›ฒ $i$ ใซใคใ„ใฆ $2000^{2} - (S - D[i])$ ใงใ‚ใ‚‹ใ€‚

้›ฒใฎ้‡ใญๅˆใ‚ใ›ใ‚’ Zobrist hashing ใ—ใฆใ‚‚TLE ใ—ใชใ„ ใ€‚ๅ…ทไฝ“็š„ใซใฏใ€้›ฒ $i$ ใซ0ใงใฏใชใ„็ฌฆๅทใชใ—64-bitไนฑๆ•ฐ $R_i$ ใ‚’ๅ‰ฒใ‚Šๅฝ“ใฆใ‚‹ใ€‚้›ฒใฎ้‡ใญๅˆใ‚ใ›ใ‚’ $R_i$ ใฎXORใซใ™ใ‚‹ใจใ€้›ฒใŒใชใ„ใƒžใ‚นใฏ0ใ€้›ฒใŒไธ€ใคใฎใƒžใ‚นใฏ $R_i$ ใฎใ„ใšใ‚Œใ‹(ใ“ใ‚Œใฏ $R_i$ ใ‹ใ‚‰ $i$ ใธใฎ้€†ๅผ•ใใƒ†ใƒผใƒ–ใƒซใ‚’ไฝœใ‚‹)ใ€ใใ‚Œไปฅๅค–ใฏใปใผ็ขบๅฎŸใซ $R_i$ ไปฅๅค–ใง้ž0ใฎๆ•ฐใซใชใ‚‹ใ€‚ใ„ใ‚‚ใ™ๆณ•ใ‚‚XORใงๆฑ‚ใ‚ใ‚‹ใ€‚่จˆ็ฎ—้‡ใฏ $O(HW+Nlog(N))$ ใงใ‚ใ‚‹ใ€‚

ABC 434-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ•้กŒๆ–‡ใ‚’่ฆ‹ใฆmax flowใ ใจๆ€ใฃใŸใŒ็ญ”ใˆใŒๅˆใ‚ใชใ„ใ€‚่€ƒใˆๆ–นใฏๅฎŒๅ…จใซใ‚ใฃใฆใ„ใฆใ€ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏๅฎŸใฏไธ€ใ‹ๆ‰€ typoใ—ใŸ ใ“ใจใซๆฐ—ใŒไป˜ใ‹ใชใ‹ใฃใŸใ€‚ใ‚ณใƒณใƒ†ใ‚นใƒˆๅพŒใซ่ฆ‹็›ดใ—ใŸใ‚‰ๅˆ†ใ‹ใฃใŸใŒๆ™‚ใ™ใงใซ้…ใ—ใ€‚

็ญ”ใˆใ‹ใ‚‰่จ€ใˆใฐใ€ใ‚ฐใƒฉใƒ•ใฎmax-flowใงใ‚ใ‚‹ใ€‚ไปฅไธ‹ใฎใ‚ฐใƒฉใƒ• $G$ ใ‚’ๆง‹ๆˆใ™ใ‚Œใฐใ„ใ„ใ€‚

  • ใ†ใ•ใŽใฎใ‚ธใƒฃใƒณใƒ—ๅ…ˆใ‚’ๅบงๆจ™ๅœง็ธฎใ—ใฆ้€ฃ็•ชใ‚’ๆŒฏใฃใฆใŠใ
  • ๅง‹็‚นใ‹ใ‚‰ใใ‚Œใžใ‚Œใฎใ†ใ•ใŽ $1..N$ ใซๆœ€ๅคงๆต1ใฎ่พบใ‚’ๅผตใ‚‹
  • ใใ‚Œใžใ‚Œใฎใ†ใ•ใŽใ‹ใ‚‰ $i$ ใ€ใใ‚Œใžใ‚Œใฎใ‚ธใƒฃใƒณใƒ—ๅ…ˆ $X_i-R_I, X_i+R_i$ ใซๆœ€ๅคงๆต1ใฎ่พบใ‚’ๅผตใ‚‹
  • ใ†ใ•ใŽใฎใ‚ธใƒฃใƒณใƒ—ๅ…ˆใ‹ใ‚‰็ต‚็‚นใซๆœ€ๅคงๆต $N$ ใฎ่พบใ‚’ๅผตใ‚‹

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏๅ…ฅๅŠ›ไพ‹ใŒๅˆใ‚ใชใ„ใฎใ‚’ๆ‰ฟ็Ÿฅใงๅ‚™ๅฟ˜้Œฒไปฃใ‚ใ‚Šใซๆๅ‡บใ—ใŸใฎใ ใŒใ€ใชใ‚“ใจไปฅไธ‹ใฎใ‚ณใƒผใƒ‰ใŒ้–“้•ใฃใฆใ„ใŸใ€‚

for(Num i{0}; i<serial; ++i) {
    graph.add_edge(n+serial, sink, 1);
}

n+serial ใงใฏใชใใ€ๆญฃใ—ใใฏ n+i ใงใ‚ใ‚‹ใ€‚5ๅฎŒใชใ‚‰ๆฐด่‰ฒใซๆˆปใ‚ŒใŸใฎใงใ€ๅฎŒๅ…จใซๅ‹ใก่ฉฆๅˆใ‚’่ฝใจใ—ใฆใ—ใพใฃใŸใ€‚Cๅ•้กŒใฎใ‚ฐใƒ€ใ‚ฐใƒ€ใ‚’ๆœ€ๅพŒใพใงๅผ•ใใšใฃใฆใ—ใพใฃใŸใ€‚ใ†ใ•ใŽใฎๆ•ฐ $N$ ใ‚ˆใ‚Šๆœ€ๅคงๆตใŒๅคšใ„ใฎใฏๅค‰ใ ใจๆ€ใฃใŸใŒใ€typoใซๆฐ—ใŒไป˜ใ‹ใชใ‹ใฃใŸใ€‚

ๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹ๅˆฅ่งฃใฏใ‚จใƒฌใ‚ฌใƒณใƒˆใงใ€ๆ€ใ„ใคใๆฐ—ใŒใ—ใชใ„ใ€‚

ABC 435-A

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‡บใฆใ€A,B,C,D,E ใฎ5ๅฎŒใ ใฃใŸใ€‚Eๅ•้กŒใง้…ใ‚Œใ€Fๅ•้กŒใฏ่งฃใ‘ใชใ‹ใฃใŸใ€‚ใใ‚Œใงใ‚‚ๆฐดใ‚ณใƒผใƒ€ใƒผใซๆˆปใฃใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$N(N+1)/2$ ใงใ‚ใ‚‹ใ€‚ๅˆใ‚ใฆๆๅ‡บใพใง1ๅˆ†ใ‚’ๅˆ‡ใฃใŸใ€‚

ABC 435-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ•้กŒๆ–‡้€šใ‚Š $O(N^3)$ ๅ›ž่จˆ็ฎ—ใ™ใ‚‹ใ€‚

ABC 435-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็„ฆใ‚Šใ™ใŽใฆใ€Bๅ•้กŒใซๅ…ฅๅŠ›ไพ‹ใ‚’้ฃŸใ‚ใ›ใฆไธๆญฃ่งฃใ ใจๅ‹˜้•ใ„ใ—ใŸใ€‚

ใƒ‰ใƒŸใƒŽใŒๅฑŠใๅ ดๆ‰€+1ใ‚’ $M$ ใจใ™ใ‚‹ใ€‚

  • ๅฐ‘ใชใใจใ‚‚1็•ช็›ฎใฎใƒ‰ใƒŸใƒŽใฏๅ€’ใ‚Œใ€ $M = 1 + A_1$ ใงใ‚ใ‚‹ใ€‚
  • ใ‚ใ‚‹ $i$ ใซใคใ„ใฆ $M \leq i$ ใชใ‚‰ใƒ‰ใƒŸใƒŽใฏใ‚‚ใ†ๅ€’ใ‚Œใชใ„ใฎใง็ญ”ใˆใฏ $i-1$ ใงใ‚ใ‚‹ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐ $M = max(M, i + A_i)$ ใซใ™ใ‚‹ใ€‚

ABC 435-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆœ‰ๅŠนใ‚ฐใƒฉใƒ•ใ‚’้€†ๅ‘ใใซใ—ใฆใ€้ ‚็‚นใ‚’ๅก—ใฃใŸใ‚‰DFSใงๅˆฐ้”ๅฏ่ƒฝใช้ ‚็‚นใ‚’ใ™ในใฆ้ป’ใๅก—ใ‚‹ใ€‚ใŸใ ใ—้ป’ใ„้ ‚็‚นใ‹ใ‚‰ๅ…ˆใฏๅก—ใ‚‹ๅฟ…่ฆใฏใชใ„ใ€‚ใ“ใ‚ŒใงTLEใ—ใชใ„ใ€‚

ABC 435-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงๅŒบ้–“ๅ’Œใ€maxๆ›ดๆ–ฐใ ใ‚ใ†ใจๆ€ใฃใŸใ‚‰ๅ…จ็„ถ็ญ”ใˆใŒๅˆใ‚ใชใ„ใ€‚ไป•ๆ–นใชใ„ใฎใงไบ’ใ„ใซ็ด ใชๅŒบ้–“ใ‚’ std::set<std::pair<Num,Num>> ใซๅ…ฅใ‚Œใฆ่งฃใ„ใŸใ€‚ๅบงๆจ™ๅœง็ธฎใฏๅฟ…่ฆใชใ„ใ€‚

ใ‚ฏใ‚จใƒชใ‚’ๅ…ˆ่ชญใฟใ—ใฆใ€ใƒžใ‚น็•ชๅทใจใ—ใฆๅ–ใ‚Šๅพ—ใ‚‹ๅ€ค $P$ ใฎ้›†ๅˆใ‚’่ฆ‹ใคใ‘ใ‚‹ใ€‚ $P$ ใซใฏ $0,N,L,R$ ใ‚’ๅ…ฅใ‚Œใ‚‹ใ€‚ $R$ ใฏ $R+1$ ใซ็ฝฎใๆ›ใˆใ‚‹ใ€‚ใใฎๅพŒ $P$ ใ‚’ๆ˜‡้ †ใซใชใ‚‰ในใฆใ€ไบ’ใ„ใฎ็–ŽใชๅŒบ้–“ $[A,B)$ ใฎ้›†ๅˆ $S$ ใ‚’ไฝœใ‚‹ใ€‚

็ญ”ใˆใ‚’ $N$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚ใ‚ฏใ‚จใƒช $[L,R)$ ใ‚’่ชญใ‚€ใ”ใจใซใ€ $S$ ใ‹ใ‚‰ $[L,R)$ ใจ้‡ใชใ‚‹ๅŒบ้–“ใ‚’้™คใ„ใฆใ„ใใ€‚ใ“ใฎๆ“ไฝœใฏๅ…จไฝ“ใง $2N$ ๅ›žใชใฎใงTLEใ—ใชใ„ใ€‚ใ‚ˆใ‚Šๅ…ทไฝ“็š„ใซใฏใ€ใ‚ฏใ‚จใƒชใ”ใจใซไปฅไธ‹ใฎใ‚ˆใ†ใซใ™ใ‚‹ใ€‚

  • $[L,-1)$ ใ‚ˆใ‚Š่พžๆ›ธ้ †ใงๅคงใใชๆœ€ๅˆใฎๅŒบ้–“ $[A,B)$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใใฎใ‚ˆใ†ใชๅŒบ้–“ใŒใชใ‘ใ‚Œใฐใ‚ฏใ‚จใƒชใฎ่งฃใŒๆฑ‚ใพใฃใŸใฎใง็ต‚ไบ†ใ™ใ‚‹ใ€‚
  • $[L,R)$ ใจ $[A,B)$ ใซ้‡ใชใ‚ŠใŒใชใ‘ใ‚Œใฐใ€ใคใพใ‚Š $R \leq A$ ใชใ‚‰็ต‚ไบ†ใ™ใ‚‹
  • $[L,R)$ ใŒ $[A,B)$ ใ‚’ๅŒ…ๅซใ™ใ‚Œใฐใ€ใคใพใ‚Š $B \leq R$ ใชใ‚‰ใ€็ญ”ใˆใ‹ใ‚‰ $B - A$ ใ‚’ๅผ•ใใ€ๅŒบ้–“ $[A,B)$ ใ‚’ๅ–ใ‚Š้™คใ„ใฆๅ…ˆ้ ญใซๆˆปใ‚‹ใ€‚
  • $[L,R)$ ใŒ $[A,B)$ ใจไธ€้ƒจ้‡ใชใ‚Œใฐใ€ใคใพใ‚Š $B &gt; R$ ใชใ‚‰ใ€็ญ”ใˆใ‹ใ‚‰ $R - A$ ใ‚’ๅผ•ใใ€ๅŒบ้–“ $[A,B)$ ใ‚’ๅ–ใ‚Š้™คใใ€ๅŒบ้–“ $[R,B)$ ใ‚’่ฟฝๅŠ ใ—ใฆ็ต‚ไบ†ใ™ใ‚‹ใ€‚

้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ่งฃๆณ•ใฏใ€ๅ…ฌๅผ่งฃ่ชฌ้€šใ‚Šใซ ๅฎŸ่ฃ… ใ—ใŸใ€‚ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซๆ€ใ„ใคใๆฐ—ใŒใ—ใชใ„ใฎใฏใ€ๅ…ธๅž‹ใ‚’็Ÿฅใ‚‰ใชใ„ใ‹ใ‚‰ใ ใ€‚

ABC 435-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

40ๅˆ†ใ‚ใฃใŸใŒๆญฃ่งฃใงใใชใ‹ใฃใŸใ€‚ใ‚ใ‚‹็Œซใฎไฝ็ฝฎใ‹ใ‚‰ๅทฆๅณใฉใกใ‚‰ใซ็งปๅ‹•ใ™ใ‚‹ใจ่ท้›ขใŒ้•ทใ„ใ‹ใ‚’DFSใ—ใŸใ€‚ๆ–น้‡่‡ชไฝ“ใฏๅˆใฃใฆใŸใŒใ€ๅขƒ็•Œๅ€คใฎใƒใ‚ฐใŒๅ–ใ‚Œใšๆ•ฐๆ—ฅใ‹ใ‹ใฃใŸใ€‚ๅฎŸ่ฃ…ๅŠ›ใŒ่ถณใ‚Šใชใ„ใ€‚

ใ‚ใ‚‹็ฏ„ๅ›ฒใงๆœ€ใ‚‚้ซ˜ใ„ใ‚ฟใƒฏใƒผใฎไฝ็ฝฎใฏใ€ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซ $(H_i,i)$ ใ‚’่ผ‰ใ›ใฆๅŒบ้–“maxใ™ใ‚Œใฐๅˆ†ใ‹ใ‚‹ใ€‚ไพฟๅฎœไธŠใ€ๅ˜ไฝๅ…ƒใ‚’ $(-1,-1)$ ใจใ—ใฆ่ฒ ใฎๅ€คใชใ‚‰่ฉฒๅฝ“ใ™ใ‚‹ใ‚ฟใƒฏใƒผใŒใชใ„ใ“ใจใ‚’็คบใ™ใ€‚

ไปŠๆณจ็›ฎใ—ใฆใ„ใ‚‹ๅŒบ้–“ใ‚’ $[L,R)$ ใจใ—ใฆใ€ใใฎๅฑ€ๆ‰€่งฃใ‚’ $f(L,R)$ ใจใ™ใ‚‹ใ€‚ $[L,R)$ ใงๆœ€ใ‚‚้ซ˜ใ„ใ‚ฟใƒฏใƒผใฎไฝ็ฝฎใ‚’ $C$ ใจใ™ใ‚‹ใ€‚ $C$ ใŒๅญ˜ๅœจใ—ใชใ„ใชใ‚‰ใ‚‚ใ†็งปๅ‹•ใงใใชใ„ใฎใง็ญ”ใˆใฏ0ใงใ‚ใ‚‹ใ€‚

ใใ†ใงใชใ‘ใ‚ŒใฐๅŒบ้–“ $[L,C)$ ใงๆœ€ใ‚‚้ซ˜ใ„ใ‚ฟใƒฏใƒผใฎไฝ็ฝฎใ‚’ $P$ ใจใ™ใ‚‹ใ€‚ $P$ ใŒๅญ˜ๅœจใ—ใชใ„ใชใ‚‰็งปๅ‹•่ท้›ข0ใจใ™ใ‚‹ใ€‚ $P$ ใŒๅญ˜ๅœจใ™ใ‚‹ใชใ‚‰ใ€ๅทฆๅดใซ็งปๅ‹•ใ—ใŸๆ™‚ใฎ่ท้›ขใฏ $D_{l,L,R} = |C-P| + f(L,C)$ ใงใ‚ใ‚‹ใ€‚ใ“ใ“ใง $f(L,C-1)$ ใจใ™ใ‚‹ใจใ€ๅ…ฅๅŠ›ไพ‹ใฏๅˆใ†ใŒๅคง้‡ใซWAใ™ใ‚‹ใ€‚

ๅŒๆง˜ใซๅŒบ้–“ $[C,R)$ ใงๆœ€ใ‚‚้ซ˜ใ„ใ‚ฟใƒฏใƒผใฎไฝ็ฝฎใ‚’ $Q$ ใจใ™ใ‚‹ใ€‚ $Q$ ใŒๅญ˜ๅœจใ—ใชใ„ใชใ‚‰็งปๅ‹•่ท้›ข0ใจใ™ใ‚‹ใ€‚ $Q$ ใŒๅญ˜ๅœจใ™ใ‚‹ใชใ‚‰ใ€ๅณๅดใซ็งปๅ‹•ใ—ใŸๆ™‚ใฎ่ท้›ขใฏ $D_{r,L,R} = |Q-C| + f(C,R)$ ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ $f(L,R) = max(D_l, D_r)$ ใงใ‚ใ‚‹ใ€‚

ใ“ใ‚Œใ‚’ๅŒบ้–“ $[1,N+1)$ ใ‹ใ‚‰ๅ†ๅธฐ็š„ใซDFSใ™ใ‚‹ใ“ใจใง็ญ”ใˆใŒๆฑ‚ใพใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจๆ“ไฝœใฎ่จˆ็ฎ—้‡ใ‹ใ‚‰ $O(Nlog(N))$ ใงใ‚ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌใฏ่จˆ็ฎ—้‡ใŒ $O(N)$ ใ ใŒใ€ๆ–น้‡่‡ชไฝ“ใฏๅŒใ˜ใงใ‚ใ‚‹ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-A

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅพ—็‚น $S_i$ ใ‚’ๅ–ใฃใŸไบบใŒ $P_i$ ไบบใ„ใ‚‹ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $P_i$ ใฎ้™้ †ใซไธฆในใ€ไปฅไธ‹ใฎๆ“ไฝœใ‚’่กŒใ†ใ€‚

ๅพ—็‚น $S_j$ ไปฅไธŠใ‚’ๅ–ใฃใŸไบบใŒ็ดฏ็ฉ $P_j$ ไบบใ„ใ‚‹ใจใ™ใ‚‹ใ€‚ใ“ใฎใจใใ‚ฏใƒฉใ‚น้–“ใฎไบบๆ•ฐใฎๅทฎใฏ $D_j = |N - 2P_j|$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใ‚ฟใƒ—ใƒซ $(D_j, P_j, S_j)$ ใจใ™ใ‚‹ใ€‚

ใ“ใฎใ‚ฟใƒ—ใƒซใ‚’ๆ˜‡้ †ใซไธฆในๆ›ฟใˆใ€่พžๆ›ธๅผๆœ€ๅฐ้ †ใฎๅ€ค $S_1$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ›ฃๅญใ‚’่‰ฒใฎๆ˜‡้ †ใซไธ€็›ด็ทšไธŠใซไธฆในใฆใ€ๅทฆใ‹ใ‚‰้ †ใซๆถˆๅŒ–ใ—ใฆใ„ใใ€‚ไพฟๅฎœไธŠใ€่‰ฒ $N+1$ ใฎๅ›ฃๅญใฏ0ๅ€‹ใจใ™ใ‚‹ใ€‚

ไธฒๅ›ฃๅญใฎ็ด ๆใŒ $R_1 = A_1$ ๅ€‹ใ‚ใ‚‹ใจใ™ใ‚‹ใ€‚่‰ฒ1,2ใ‚’็ต„ใฟๅˆใ‚ใ›ใฆไธฒๅ›ฃๅญใ‚’ไฝœใ‚‹็ด ๆใฏ $R_1 + A_2$ ๅ€‹ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆไฝœใ‚Œใ‚‹ๅ›ฃๅญใฎๆ•ฐใฏ $U_2 = \lfloor (R_1 + A_2) / 3 \rfloor$ ๅ€‹ใงใ‚ใ‚‹ใ€‚ใ“ใฎๆ™‚็‚นใง่‰ฒ2ใฎๅ›ฃๅญใฏๆฎ‹ใ‚Š $R_2 = max(0, min(A_2, R_1 + A_2 - 3U_2))$ ๅ€‹ใงใ‚ใ‚‹ใ€‚

่‰ฒ2,3ใ‚’็ต„ใฟๅˆใ‚ใ›ใฆไธฒๅ›ฃๅญใ‚’ไฝœใ‚‹ใจใใ€่‰ฒ1ใฎๅ›ฃๅญใฏไฝ•ๅ€‹ใ‚ใฃใฆใ‚‚ไฝฟใ†ใ“ใจใŒใงใใšใ€่‰ฒ2ใฏๆฎ‹ใ‚Š $R_2$ ๅ€‹ใงใ‚ใ‚‹ใ€‚ไธŠ่จ˜ใจๅŒๆง˜ใซ $U,R$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’่‰ฒ $N,N+1$ ใ‚’็ต„ใฟๅˆใ‚ใ›ใฆไธฒๅ›ฃๅญใ‚’ไฝœใ‚‹ใพใง็นฐใ‚Š่ฟ”ใ™ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$S$ ใฎ OI ใ‚’ x ใจ็ฝฎใๆ›ใˆใ‚‹ใ€‚ J ใงๅง‹ใพใ‚Šใ€ J ใพใŸใฏ x ใŒ็ถšใๆ–‡ๅญ—ๅˆ—ใฏใ€ๆ“ไฝœใซใ‚ˆใฃใฆ x ใ‚’ๅทฆใซๅฏ„ใ›ใฆ x..xJ..J ใซใ™ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅฐบๅ–ใ‚Šๆณ•ใง่กŒใ†ใจ $O(N)$ ใง่งฃใ‘ใ‚‹ใ€‚ๅพŒใฏ x ใ‚’ OI ใซๆˆปใ—ใฆๅ‡บๅŠ›ใ™ใ‚‹ใ€‚ $S$ ใฎ็ต‚็ซฏใซใ‚ปใƒณใƒใƒใƒซใ‚’็ฝฎใใจๅ‡ฆ็†ใ—ใ‚„ใ™ใ„ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$k$ ใ‚’ไธ‰ๅˆ†ๆŽข็ดขใ™ใ‚‹ใจใ€AC or TLEใง39็‚นๅ–ใ‚Œใ‚‹ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ACLใ‚’ไฝฟใฃใฆACใ—ใŸใ€‚

ใ‚ใ‚‹้ ‚็‚นใ‹ใ‚‰ใฎ็งปๅ‹•ๅ›žๆ•ฐใ‚’ $d$ ใ—ใฆใ€้ ‚็‚นๅ€ๅŒ–ใ—ใŸ่กŒใๅ…ˆใ‚’ใ‚ฐใƒฉใƒ• $G$ ใซใ™ใ‚‹ใ€‚้ ‚็‚น็•ชๅทใ‚’0-based indexing ใซใ—ใฆ(ใคใพใ‚Šๅ…ฅๅŠ›ใฎ $A,B$ ใ‹ใ‚‰1ๅผ•ใ„ใฆ)ใ€ๅฅ‡ๆ•ฐๅ›ž็›ฎใซ็งปๅ‹•ใ—ใŸๅพŒใฎ้ ‚็‚นใ‚’ $A+N$, ๅถๆ•ฐๅ›ž็›ฎใซ็งปๅ‹•ใ—ใŸๅพŒใฎ้ ‚็‚นใ‚’ $B$ ใจใ—ใฆใ€ $G$ ใฏ $\vec{B,A+N}$ ใจ $\vec{B+N,A}$ ใ‹ใ‚‰ๆง‹ๆˆใ™ใ‚‹ใ€‚

$G$ ใ‚’SCC(ๅผท้€ฃ็ตๆˆๅˆ†ๅˆ†่งฃ)ใ—ใฆใ€ใ‚ตใ‚คใ‚ฏใƒซ็พคใ‚’่ฆ‹ใคใ‘ใ‚‹ใ€‚ใ‚ใ‚‹ใ‚ตใ‚คใ‚ฏใƒซ $C$ ใซใŠใ„ใฆใ€้ ‚็‚น $i$ ใจ้ ‚็‚น $i+N$ ใ‚’ๅŒไธ€่ฆ–ใ—ใŸใจใใฎ้ ‚็‚นๆ•ฐ $W$ ใŒใ€ใใฎใ‚ตใ‚คใ‚ฏใƒซใซใ‚ใ‚‹้ ‚็‚นใŒๅˆฐ้”ๅฏ่ƒฝใช้ ‚็‚นๆ•ฐ $C_i = W$ ใงใ‚ใ‚‹(ๅŒไธ€่ฆ–ใ‚’ๅฟ˜ใ‚Œใ‚‹ใจๅคง้‡ใซWAใ™ใ‚‹)ใ€‚ใ‚ใจใฏใ‚ตใ‚คใ‚ฏใƒซใฎๅ„้ ‚็‚นใ‹ใ‚‰BFSใ—ใฆใ€้ ‚็‚นใ‚’ใŸใฉใ‚‹ใ”ใจใซ $W$ ใ‚’1ๅข—ใ‚„ใ—ใชใŒใ‚‰่ตฐๆŸปใ—ใ€ $C$ ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ $W$ ใŒๅฐใ•ใใชใ‚‹ใ‚ˆใ†ใชใ‚‰่ตฐๆŸปใ‚’ๆ‰“ใกๅˆ‡ใฃใฆใ‚ˆใ„ใ€‚

้ ‚็‚น $i$ ใซใคใ„ใฆใฎ็ญ”ใˆใฏ $min(N, max(0, N - C_i))$ ใงใ‚ใ‚‹ใ€‚

JOI 2025/2026 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-F

$O(N^3)$ ่งฃใงAC or TLEใ—ใฆ62็‚นๅ–ใฃใŸใ€‚

$N$ ใŒๅถๆ•ฐใชใ‚‰ใ€่ˆน $i$ ใจ ่ˆน $i + N/2$ ใฎๆœ€ๅฐ่ท้›ขใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ไปฅไธ‹ $N$ ใฏๅฅ‡ๆ•ฐใจใ™ใ‚‹ใ€‚

$N$ ใŒๅฅ‡ๆ•ฐใชใ‚‰ใ€่ˆน $i$ ใ‚’ๅซใ‚€่ˆน $l,j,r$ ใŒ็ญ‰ๅทฎๆ•ฐๅˆ—ใ‚’ๆง‹ๆˆๅฏ่ƒฝใ‹็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใ€‚ๆง‹ๆˆๅฏ่ƒฝใชใ‚‰ๆฎ‹ใ‚Šใฎ่ˆนใฏๅถๆ•ฐใชใฎใงไธŠ่จ˜ใจๅŒใ˜่€ƒๅฏŸใ‚’ใ—ใ€่ˆน $l,j,r$ ใฎ่ท้›ขใจๅฐใ•ใ„ๆ–นใŒ็ญ”ใˆใฎๅ€™่ฃœใงใ‚ใ‚‹ใ€‚

ๅ…ทไฝ“็š„ใซใฏ $l,r$ ใ‚’ $1..N$ ใฎไบŒ้‡ใƒซใƒผใƒ—ใซใ—ใฆ(ใŸใ ใ— $l &lt; r$ )ใ€ไปฅไธ‹ใŒ $i$ ใฎๅ€™่ฃœใงใ‚ใ‚‹ใ€‚

  • $A_r - A_l$ ใŒๅถๆ•ฐใ‹ใค $A_i = (A_r + A_l) / 2$ ใ‚’ๆบ€ใŸใ™ $i$ ใŒใ‚ใ‚‹
  • $A_i = A_l - (A_r + A_l)$ ใ‚’ๆบ€ใŸใ™ $i$ ใŒใ‚ใ‚‹
  • $A_i = A_r + (A_r + A_l)$ ใ‚’ๆบ€ใŸใ™ $i$ ใŒใ‚ใ‚‹

ABC 435-A

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‡บใฆใ€A,B,C,D,E,F ใฎ6ๅฎŒใ ใฃใŸใ€‚ๅˆใ‚ใฆใฎ6ๅฎŒใงใ‚ใ‚‹ใ€‚ABCๆœ€้ซ˜ใƒ‘ใƒ•ใ‚ฉใ ใŒใ€้’่‰ฒใซใฏๅฑŠใ‹ใชใ‹ใฃใŸใ€‚ใ—ใ‹ใ—Eๅ•้กŒใ‚ˆใ‚ŠFๅ•้กŒใ‚’ๅ…ˆใซ่งฃใในใใ ใฃใŸใฎใฏ็Œ›ๅ็œใงใ‚ใ‚‹ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$N - |S|$ ๆ–‡ๅญ—ใฎ o ใ‚’ๅ‡บๅŠ›ใ—ใฆใ‹ใ‚‰ $S$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 435-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ•้กŒๆ–‡้€šใ‚ŠๅฎŸ่ฃ…ใ™ใ‚‹ใฎใ ใŒใ€ใ‚„ใ‚„ใ“ใ—ใ„ใ€‚

ABC 435-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒ–ใƒญใƒƒใ‚ฏใฎใƒžใ‚น้›†ๅˆ $S$ ใ‚’ใ™ในใฆ้›†ๅˆ $T$ ใซ่ผ‰ใ›ใ‚‹ใ€‚ $S$ ใŒ $T$ ใซไธ€ใคใงใ‚‚่ผ‰ใฃใฆใ„ใ‚Œใฐใใฎใƒ–ใƒญใƒƒใ‚ฏใ‚’็ฝฎใใ“ใจใฏใงใใšใ€ใใ†ใงใชใ‘ใ‚Œใฐ $T$ ใฎ $S$ ใ‚’ๅŠ ใˆใ‚‹ใ€‚็ญ”ใˆใฏ $|T|/4$ ใงใ‚ใ‚‹ใ€‚

ABC 435-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

่ถ…้ ‚็‚น a..z ใ‚’็”จๆ„ใ™ใ‚‹ใ€‚

็„กๅ‘ใ‚ฐใƒฉใƒ• $G$ ใ‚’ไปฅไธ‹ใฎ้€šใ‚Šๆง‹ๆˆใ™ใ‚‹ใ€‚

  • ็ฉบใใƒžใ‚น . ใจ ใƒฏใƒผใƒ—ใƒžใ‚น a-z ใฏใ€ไธŠไธ‹ๅทฆๅณใŒ้šœๅฎณ็‰ฉใพใŸใฏๆž ๅค–ใงใชใ‘ใ‚Œใฐใ€่ท้›ข1ใง้šฃๆŽฅใ™ใ‚‹
  • ใƒฏใƒผใƒ—ใƒžใ‚น a-z ใฏใ€่ถ…้ ‚็‚นใจ่กŒใใฏ่ท้›ข1ใงใ€ๅธฐใ‚Šใฏ่ท้›ข0ใง้šฃๆŽฅใ™ใ‚‹

ใƒžใ‚น $(1,1)$ ใ‹ใ‚‰ $(H,W)$ ใซใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใ™ใ‚‹ใจ็ญ”ใˆใŒๆฑ‚ใพใ‚‹ใ€‚

ABC 435-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ…ˆใซFๅ•้กŒใ‚’่ฆ‹ใŸใฎใซใ€Eๅ•้กŒใฎๆ–นใŒ็ฐกๅ˜ใ ใจๆ€ใฃใฆ้ฃ›ใณใคใ„ใฆใ—ใพใฃใŸใ€‚ๆญฃ่งฃ่€…ๆ•ฐใŒ็ฉใฟใ‚ใŒใฃใฆใ„ใใฎใ‚’่ฆ‹ใฆใ€ใ“ใฎๅ•้กŒใฏ่งฃใ‹ใชใ‘ใ‚Œใฐใจๆ€ใฃใŸใŒใ€ใ„ใคใ‚‚้€šใ‚Šๆญฃ่งฃ่€…ๆ•ฐใจ็งใซใจใฃใฆใฎ้›ฃๆ˜“ๅบฆใฏ็•ฐใชใ‚‹ใ“ใจใŒๅคšใ„ใ€‚

่ปขๅ€’ๆ•ฐใซๆณจ็›ฎใ—ใฆ30ๅˆ†ๆบถใ‹ใ—ใŸใ€‚็ญ”ใˆใฏ้€ฃ็ตๆˆๅˆ†ๅˆ†่งฃใงใ‚ใ‚‹ใ€‚

$(i,P_i)$ ใŒ้€ฃ็ตๆˆๅˆ†ใชใ‚‰ใ€ $P_i$ ใจ $P_{P_i}$ ใ‚’ใ„ใคใ‹ไบคๆ›ใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ€‚ใ“ใฎ้–ขไฟ‚ใฏๆŽจ็งป็š„ใชใฎใงใ€union-findๆœจใฎ้€ฃ็ตๆˆๅˆ†ใจใ—ใฆ่กจ็พใงใใ‚‹ใ€‚

ใ‚ใ‚‹้€ฃ็ตๆˆๅˆ† $G$ ใŒใ‚ใ‚Šใ€ๆˆๅˆ†ๆ•ฐใŒ $|G|$ ใฎใจใใ€ๆ„ๅ‘ณใฎใ‚ใ‚‹ๆ“ไฝœใฏ $|G|(|G|-1)/2$ ้€šใ‚Šใฎ็ต„ใฟๅˆใ‚ใ›ใŒใ‚ใ‚‹ใ€‚็‰นใซ $|G|=1$ ใฎใจใใฏ่‡ชๅˆ†่‡ช่บซใ‚’ไบคๆ›ใ™ใ‚‹ใฎใง0้€šใ‚Šใงใ‚ใ‚‹ใ€‚

ใ™ในใฆ้€ฃ็ตๆˆๅˆ†ใซใคใ„ใฆ $|G|(|G|-1)/2$ ใ‚’ๆฑ‚ใ‚ใŸๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 435-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Eๅ•้กŒใ‚ˆใ‚Šๅ…ˆใซ่ฆ‹ใŸใฎใซใ€้›ฃใ—ใ„ใจๆ€ใฃใฆๅพŒๅ›žใ—ใซใ—ใŸใ€‚็ตๆžœ็š„ใซใฏใ€Eๅ•้กŒใ‚ˆใ‚Šใšใฃใจ็ฐกๅ˜ใ ใฃใŸใ€‚

$b = 1..N$ ็•ช็›ฎใกใ‚‡ใ†ใฉใซๆ˜Žใ‚‹ใ„ๆ˜Ÿใจใ€ $b$ ใ‚ˆใ‚Šใ‚‚ๆ˜Žใ‚‹ใ„ๆ˜Ÿใ ใ‘ใ‚’ๆ’ฎใ‚‹ๆ–นๆณ•ใŒไฝ•้€šใ‚Šใ‚ใ‚‹ใ‹้€ๆฌก็š„ใซๆฑ‚ใ‚ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T$ ใฏใ€ไฝ็ฝฎ $i$ ใซๆ˜ŸใŒใ‚ใ‚Œใฐ1ใ€ใชใ‘ใ‚Œใฐ0ใจใ—ใฆใ€ๅŒบ้–“ๅ’Œใฏๆ˜Ÿใฎๆ•ฐใงใ‚ใ‚‹ใ€‚

1็•ชๆ˜Žใ‚‹ใ„ๆ˜Ÿใ ใ‘ๆ’ฎใ‚‹ๆ–นๆณ•ใฏ1้€šใ‚Šใงใ‚ใ‚‹ใ€‚ $B_i = 1$ ใ‚’ๆบ€ใŸใ™ $i$ ใซใคใ„ใฆใ€ $T[i] = 1$ ใจใ™ใ‚‹ใ€‚

$b$ ็•ชใŠใ‚ˆใณใใ‚Œใ‚ˆใ‚Šๆ˜Žใ‚‹ใ„ๆ˜Ÿใ ใ‘ๆ’ฎใ‚‹ๆ–นๆณ•ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ $B_i = b$ ใ‚’ๆบ€ใŸใ™ $i$ ใŒใ‚ใ‚‹ใจใใ€ๅทฆๅดใ‹ใ‚‰ $L=1+T[1,i)$ ้€šใ‚Šใ€ๅณๅดใ‹ใ‚‰ $R=1+T(i,N]$ ้€šใ‚Š้ธในใ‚‹ใฎใง $LR$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’็ญ”ใˆใซ่ถณใ™ใ€‚ใใฎๅพŒใ€ $T[i] = 1$ ใจใ™ใ‚‹ใ€‚

ไธŠ่จ˜ใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใ‚‚ใ—ใ‹ใ—ใŸใ‚‰Eๅ•้กŒใง่ปขๅ€’ๆ•ฐใ‚’ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงๆฑ‚ใ‚ใŸใฎใงใ€Fๅ•้กŒใซใใฎ็™บๆƒณใ‚’ๆŒใก่พผใ‚ใŸใฎใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ€‚

JOI 2024/2025 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-A

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ•้กŒๆ–‡้€šใ‚Šใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ™ใ‚‹ใ€‚

JOI 2024/2025 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

BFSใ™ใ‚‹ใ€‚ $Q$ ใ‚’่ฆ็ด ใ‚’ $(i,C)$ ใจใ—ใ€ใƒœใƒผใƒซ $i$ ใ‚’่ฝใจใ—ใŸๆฎ‹ใ‚Šใฎ้›†ไธญๅŠ›ใŒ $C$ ใจใ™ใ‚‹ใ€‚ใƒœใƒผใƒซ $j$ ใ‚’่ฝใจใ—ใŸๅพŒใฎๆœ€ๅคง้›†ไธญๅŠ› $V[j]$ ใ‚’-1ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚

ใ„ใคใงใ‚‚่ฝใจใ›ใ‚‹ใƒœใƒผใƒซ $i$ ใซใคใ„ใฆ $(i,X-A_i)$ ใ‚’ $Q$ ใซๅ…ฅใ‚Œใ‚‹ใ€‚ใŸใ ใ— $X &lt; A_i$ ใชใ‚‰ๅ…ฅใ‚Œใชใ„ใ€‚

$Q$ ใฎ่ฆ็ด  $(i,C)$ ใ‚’ไปฅไธ‹ใฎ้€šใ‚Šๅ‡ฆ็†ใ™ใ‚‹ใ€‚

  • $V[j] \geq C$ ใชใ‚‰ใ“ใฎๅ…ˆใ‚’ๆŽข็ดขใ™ใ‚‹ๆ„ๅ‘ณใฏใชใ„ใฎใง $Q$ ใซๅ…ฅใ‚Œใชใ„
  • ใใ†ใงใชใ‘ใ‚Œใฐ $V[j]$ ใ‚’ $C$ ใซใ™ใ‚‹
  • ใƒœใƒผใƒซ $i$ ใ‚’่ฝใจใ—ใŸใ‚‰่ฝใจใ›ใ‚‹ใ‚ˆใ†ใซใชใ‚‹ใƒœใƒผใƒซ $j$ ใซใคใ„ใฆใ€ $(j,C-A_j)$ ใ‚’ $Q$ ใซๅ…ฅใ‚Œใ‚‹ใ€‚ใŸใ ใ— $C &lt; A_j$ ใชใ‚‰ๅ…ฅใ‚Œใชใ„ใ€‚

ใ“ใ‚Œใ‚’็นฐใ‚Š่ฟ”ใ™ใจใ„ใคใ‹ๅ‡ฆ็†ใŒ็ต‚ใ‚ใ‚‹ใฎใงใ€ $V[j] \leq 0$ ใ‚’ๆบ€ใŸใ™ๆœ€ๅคงใฎ $j$ (ใชใ‘ใ‚Œใฐ-1)ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

JOI 2024/2025 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆบ€็‚น่งฃๆณ•ใŒๅˆ†ใ‹ใ‚‰ใชใ„ใฎใงใ€้ƒจๅˆ†็‚นใ‚’67็‚นๅ–ใฃใŸใ€‚

$A,B$ ใ‚’็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใจๆฎ‹ใ‚Šใฏ $C$ ใ‚’ๆœ€้ฉๅŒ–ใ™ใ‚‹ใ“ใจใซใชใ‚‹ใ€‚

  • $A_i$ ใ‚’ๆฑบใ‚ๆ‰“ใกใ—ใฆใ€ไธ‹่จ˜ใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚
  • $B_j$ ใ‚’ๆฑบใ‚ๆ‰“ใกใ—ใฆใ€ไธ‹่จ˜ใฎๆœ€ๅฐๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚
    • $A_i + B_j \geq P$ ใชใ‚‰ใ€ $max(C)$ ใ‚’ๅŠ ใˆใ‚‹ใฎใŒๆœ€้ฉใงใ‚ใ‚‹
    • $A_i + B_j &lt; P$ ใชใ‚‰ใ€ $min(C), max(C)$ ใ‚’ๅŠ ใˆใฆ่งฃ $|A_i+B_j+C_k - P|$ ใŒๅคงใใ„ๆ–นใ‚’ๆŽก็”จใ™ใ‚‹

JOI 2024/2025 ไบŒๆฌกไบˆ้ธ ้ŽๅŽปๅ•-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆบ€็‚น่งฃๆณ•ใŒๅˆ†ใ‹ใ‚‰ใชใ„ใฎใงใ€้ƒจๅˆ†็‚นใ‚’57็‚นๅ–ใฃใŸใ€‚

ๅฐ่ชฒ้กŒ1ใฏ็ทๅฝ“ใŸใ‚Šใงๆฑ‚ใ‚ใ‚‹ใ€‚

ๅฐ่ชฒ้กŒ2,3,4 ($B=1$) ใฏใ€ $A$ ใ‚’ๆ˜‡้ †ใซไธฆในๆ›ฟใˆใฆใŠใใ€‚ใ“ใฎไธฆใณๆ›ฟใˆใฏใ€ $(A_i,i)$ ใฎ็ต„ใง่กŒใ†ใ€‚ใคใพใ‚ŠๅŒใ˜ๅ€ค $A$ ใชใ‚‰ $i$ ใŒๅพŒใซใใ‚‹ใ‚ˆใ†ใซใ—ใ€ไธฆในๆ›ฟใˆๅพŒใฎ้ †ๅบใ‹ใ‚‰ๅ…ƒใฎๆทปใˆๅญ—ใŒๅˆ†ใ‹ใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ใ€‚ๅพŒใงๅ‡บใ‚‹ $B$ ใ‚‚ๅŒๆง˜ใ€‚

$i=N..1$ ใฎ้ †ใซใ€็ต„ใ‚ใ‚‹ใ‚ทใ‚งใƒ•ใฎๆ•ฐใฎ็ดฏ็ฉๅ’Œ $C_{N-i}$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ‚ฏใ‚จใƒชใซๅฏพใ—ใฆ $X-1$ ใ‚’่ถ…ใˆใ‚‹ๆœ€ๅฐใฎ็ดฏ็ฉๅ’Œ $C$ ใฎใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใ‹ใ‚‰ $A_i$ ใฎ $i$ ใŒๅˆ†ใ‹ใ‚‹ใ€‚็ญ”ใˆใฏ $A_i + 1$ ใงใ‚ใ‚‹ใ€‚

ๅฐ่ชฒ้กŒ5 ($Q=1, X=1$) ใฏใ€ $A,B$ ใ‚’ใใ‚Œใžใ‚Œๆ˜‡้ †ใซไธฆในๆ›ฟใˆใฆใŠใใ€‚ $i=N..1$ ใฎ้ †ใซ $A_i$ ใ‚’ๆŽข็ดขใ™ใ‚‹ใ€‚ๅŒใ˜ $i$ ใฎไธญใงใฏใ€ $j=N..1$ ใฎ้ †ใซ $B_i$ ใ‚’ๆŽข็ดขใ™ใ‚‹ใ€‚ใ“ใฎๆŽข็ดขใงๆœ€ๅˆใซ็ต„ใ‚ใ‚‹ใ‚ทใ‚งใƒ•ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

JOI 2024/2025 ๆœฌ้ธ ้ŽๅŽปๅ•-A

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใพใ•ใ‹่งฃใ‘ใ‚‹ใจใฏๆ€ใ‚ใชใ‹ใฃใŸใ€‚

ๅˆใ‚ใ‹ใ‚‰ใปใผๆบ€็‚น่งฃๆณ•ใ‚’็›ฎๆŒ‡ใ™ใ€‚ๅฐ่ชฒ้กŒ4ใคใพใ‚Š $A$ ใŒ็‹ญ็พฉๅ˜่ชฟๅข—ๅŠ ใง้‡่ค‡ใŒใชใ„ใ€ $B$ ใŒ็‹ญ็พฉๅ˜่ชฟๅข—ๅŠ ใง้‡่ค‡ใŒใชใ„ๅ ดๅˆใ‚’่€ƒใˆใ‚‹ใ€‚ใƒžใ‚นใฎไฝ็ฝฎใ‚’0-based indexingใง่€ƒใˆใ‚‹ใ€‚

$A$ ใ‚’่กŒๆ–นๅ‘ใคใพใ‚Šๆจชๆ–นๅ‘ใซๅก—ใฃใฆใ„ใใจใใ€ใƒžใ‚นใฎ่‰ฒใฏ $A$ ใฎ็ดฏ็ฉmax $U$ ใงใ‚ใ‚‹ใ€‚ๅˆ— $i$ ใ‚’็ธฆใซ่ฆ‹ใฆใ„ใใจใ€ $U_i$ ใ‚ˆใ‚Šๅคงใใ„ๅ€คใŒๅ‡บใ‚‹ใพใง $U_i$ ใงๅก—ใ‚Šใ€ใใ‚Œใ‚ˆใ‚Šๅ…ˆใฎ่กŒใฏๅก—ใ‚Œใชใ„ใจๅˆ†ใ‹ใ‚‹ใ€‚

ใใ“ใงๅŒๆง˜ใซ $B$ ใ‚’ๅˆ—ๆ–นๅ‘ใคใพใ‚Š็ธฆๆ–นๅ‘ใซๅก—ใฃใฆใ„ใใจใใฎ็ดฏ็ฉmaxใ‚’ $V$ ใจใ™ใ‚‹ใ€‚่กŒ $j$ ใ‚’ๆจชใซ่ฆ‹ใฆใ„ใใจใ€ $V_j$ ใ‚ˆใ‚Šๅคงใใ„ๅ€คใŒๅ‡บใ‚‹ใพใง $V_j$ ใงๅก—ใ‚Šใ€ใใ‚Œใ‚ˆใ‚Šๅ…ˆใฎ่กŒใฏๅก—ใ‚Œใชใ„ใจๅˆ†ใ‹ใ‚‹ใ€‚

$U,V$ ใ‚’ใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นๅœง็ธฎใ—ใฆใ€ $RU, RV$ ใซใ™ใ‚‹ใ€‚ใใ†ใ™ใ‚‹ใจใ€่‰ฒ $C$ ใŒ้€ฃ็ถš $L$ ใƒžใ‚นใ‚ใ‚‹ใ“ใจใŒๅˆ†ใ‹ใ‚‹ใ€‚ $U,V,RU,RV$ ใ‚’ๅˆฉ็”จใ—ใฆใ€ไธŠ่จ˜ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ‚ˆใ่€ƒใˆใŸใ‚‰ใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นๅœง็ธฎใฏ่ฆใ‚‰ใชใ„ใฎใ ใŒใ€่งฃๆณ•ใ‚’่€ƒๅฏŸใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใ ใฃใŸใ€‚

็ธฆๆ–นๅ‘ใซๅŒไธ€่‰ฒใงๅก—ใ‚‹ใ“ใจใ‚’่€ƒใˆใ‚‹ใจใ€ $RU_i = (C_i, L_i)$ ใซใคใ„ใฆใ€ $U$ ใซ $C_i$ ใ‚ˆใ‚Šๅคงใใ„ๅ€คใŒๆœ€ๅˆใซๅ‡บใ‚‹ไฝ็ฝฎ(ใชใ‘ใ‚Œใฐๆž ๅค– $N$ )ใ‚’ $p$ ใจใ™ใ‚‹ใจใ€ $p \times L_i$ ใ ใ‘ๅก—ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚ๅŒๆง˜ใซใ€ๆจชๆ–นๅ‘ใซๅŒไธ€่‰ฒใงๅก—ใ‚‹ใ“ใจใ‚’่€ƒใˆใ‚‹ใจใ€ $RV_i = (C_i, L_i)$ ใซใคใ„ใฆใ€ $V$ ใซ $C_i$ ใ‚ˆใ‚Šๅคงใใ„ๅ€คใŒๆœ€ๅˆใซๅ‡บใ‚‹ไฝ็ฝฎ(ใชใ‘ใ‚Œใฐๆž ๅค– $N$ )ใ‚’ $p$ ใจใ™ใ‚‹ใจใ€ $p \times L_i$ ใ ใ‘ๅก—ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚

ไธŠ่จ˜ใ‚’็นฐใ‚Š่ฟ”ใ™ใจใ€ใฉใฎ่‰ฒใงไฝ•ใƒžใ‚นๅก—ใฃใŸใ‹ๆ•ฐใˆใ‚‰ใ‚Œใ‚‹ใ€‚ๆ•ฐใˆใ‚‹ๅ›žๆ•ฐใฏ $2N$ ๅ›žใ€้€ฃๆƒณ้…ๅˆ—ใซ่ผ‰ใ›ใ‚‹ใ‚ณใ‚นใƒˆใŒ $O(log(N))$ ใชใฎใงใ€่จˆ็ฎ—้‡ใฏ $O(Nlog(N))$ ใงใ‚ใ‚‹ใ€‚

ใ“ใฎๆ–น้‡ใงๅฐ่ชฒ้กŒ4ใ ใ‘ๆญฃ่งฃใ™ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆใฎ่ชฒ้กŒใ‚’่งฃใ‘ใ‚‹ใ‚ˆใ†ใซๆ‹กๅผตใ™ใ‚‹ใ€‚

ๆœ€ไธŠ่กŒใจๆœ€ๅทฆๅˆ—ใฏๅก—ใ‚‰ใชใ„ใฎใงใ€ใ‚ใ‚‰ใ‹ใ˜ใ‚่‰ฒใฎๅ‡บ็พ้ ปๅบฆใ‚’ๆ•ฐใˆใฆใŠใใ€‚ $A_1$ ใจ $B_1$ ใ‚’ไบŒๅบฆๆ•ฐใˆใชใ„ใ‚ˆใ†ใซๆณจๆ„ใ™ใ‚‹ใ€‚

ๅพŒใฏ็ธฆๆจช $N-1$ ใƒžใ‚นใ ใจๆ€ใฃใฆไธŠ่จ˜ใ‚’ๆ…Ž้‡ใซๅฎŸ่ฃ…ใ™ใ‚‹ใจๆญฃ่งฃใ—ใฆๆบ€็‚นใŒๅ–ใ‚Œใ‚‹ใ€‚่กŒใฏ upper_bound ใซใ—ใฆ $C_i$ ใ‚ˆใ‚Šๅคงใใช่‰ฒใงๆญขใ‚ใ€ๅˆ—ใฏ lower_bound ใคใพใ‚Š $C_i$ ใจๅŒ่‰ฒใงๆญขใ‚ใ‚‹ใจใ€็ธฆๆจชใฎใƒžใ‚นใฎๅก—ใ‚Šๆ–นใŒ้‡่ค‡ใ—ใชใ„ใ€‚

JOI 2024/2025 ๆœฌ้ธ ้ŽๅŽปๅ•-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

1็ง’ๅˆถ้™ใจใฏใชใ‚“ใ ใ‚ใ†ใจๆ€ใฃใŸใŒใ€ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงACใ—ใŸ(328 ms)ใ€‚

$N$ ใ‚’ไบŒๅ‘จใ—ใฆ้•ทใ• $2N$ ใซใ—ใฆใŠใใ€‚ใ‚ใ‚‹ใƒขใƒณใ‚นใ‚ฟใƒผ $j$ ใ‹ใ‚‰ๅ€’ใ—ๅง‹ใ‚ใŸใจใ—ใฆใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚

  • ๆœ€ๅˆใฎใƒขใƒณใ‚นใ‚ฟใƒผใ‚’ๅ€’ใ™ใฎใซๅผทใ• $A_j$ ๅฟ…่ฆใงใ‚ใ‚‹ใ€‚
  • ๆฌกใฎใƒขใƒณใ‚นใ‚ฟใƒผใ‚’ๅ€’ใ™ใฎใซๅผทใ• $D[j+1] = A_{j+1} - (A_j + B_j)$ ๅฟ…่ฆใงใ‚ใ‚‹ใ€‚ใ“ใ“ใง $D[j+1]$ ใŒ่ฒ ใฎๅ€คใงใ‚‚0ใงใ‚‚ๆฐ—ใซใ—ใชใ„ใ“ใจใซใ™ใ‚‹ใ€‚
  • ใƒขใƒณใ‚นใ‚ฟใƒผ $p &gt; j$ ใ‚’ๅ€’ใ™ใฎใซๅผทใ• $D[p] = A_{p} - (A_j + \sum_{k=j}^{p-1} B_j)$ ๅฟ…่ฆใงใ‚ใ‚‹ใ€‚ใ‚„ใฏใ‚Š $D[p]$ ใŒ่ฒ ใฎๅ€คใงใ‚‚0ใงใ‚‚ๆฐ—ใซใ—ใชใ„ใ“ใจใซใ™ใ‚‹ใ€‚

ใ“ใฎใจใใฎ็ญ”ใˆใฏใ€ $max D[j..j+N-1]$ ใงใ‚ใ‚‹ใ€‚็ฉบ้›†ๅˆใฎmaxใ‚’ใ€0ใงใฏใชใ $-\infty$ ใซใ™ใ‚‹(ใใ†ใ—ใชใ„ใจ็ญ”ใˆใŒๅˆใ‚ใชใ„)ใ€‚

$j = 1..N$ ใซใคใ„ใฆใใ‚Œใžใ‚Œ $O(log(N))$ ใงๆฑ‚ใ‚ใ‚‹่งฃๆณ•ใ‚’ๅฐŽๅ…ฅใ™ใ‚‹ใ€‚ใพใš $B$ ใฎ็ดฏ็ฉๅ’Œ $C_i = \sum_{k=1}^{i} B_i$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ๆฌกใซ $j=1$ ใฎใจใใฎไธŠ่จ˜ใฎๆ“ไฝœใ‚’ $i=1..2N$ , $D_i = A_i - C_{i-1}$ ใจใ—ใฆใ€ๅŒบ้–“ๆœ€ๅคงใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซ $T$ ใซ $T[i] = D_i$ ใ‚’่ผ‰ใ›ใ‚‹ใ€‚ $j=1$ ใชใ‚‰็ญ”ใˆ $S_1 = T[1..N]$ ใงใ‚ใ‚‹ใ€‚

$j &gt; 1$ ใฎใจใใฎไธŠ่จ˜ใฎๆ“ไฝœใฏใ€ $j$ ใ‚ˆใ‚Šๅ‰ใฎใƒขใƒณใ‚นใ‚ฟใƒผใ‚’ๅ€’ใ—ใฆๅผทใใชใฃใฆใ„ใชใ„็Šถๆ…‹ใชใฎใงใ€็ญ”ใˆ $S_j = T[j..(j+N-1)] - C_{j-1}$ ใงใ‚ใ‚‹ใ€‚ $S$ ใฎๆœ€ๅฐๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

JOI 2024/2025 ๆœฌ้ธ ้ŽๅŽปๅ•-C

30็‚นใ—ใ‹ๅ–ใ‚Œใชใ„ใฎใงใ€ๅ˜˜่งฃๆณ•ใชใฎใ‹ๅฎŸ่ฃ…ใŒ้–“้•ใฃใฆใ„ใ‚‹ใฎใ‹ใ‚ใ‹ใ‚‰ใชใ„ใ€‚

ใƒญใƒผใƒ—ใ‚ฆใ‚งใ‚คใฎ็›ฎ็š„ๅœฐ $B = 2..N$ ใ‚’็ถฒ็พ…ใ™ใ‚Œใฐใ€้ง…1ใ‹ใ‚‰ไป–ใฎ้ง…ใซๅˆฐ้”ๅฏ่ƒฝใงใ‚ใ‚‹ใ€‚็‰นใซ $B_2$ ใซใฏ $A_1$ ใ‹ใ‚‰ใ—ใ‹่กŒใ‘ใชใ„ใ€‚

ใƒญใƒผใƒ—ใ‚ฆใ‚งใ‚คไผš็คพ็•ชๅทใ‚’ๅบงๆจ™ๅœง็ธฎใ—ใฆ $D_i = C_i$ ใจใ™ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎๆทปใˆๅญ—ใฏๅบงๆจ™ๅœง็ธฎใ—ใŸ็•ชๅทใ‚’็”จใ„ใ‚‹ใ€‚ใ‚ฏใ‚จใƒชใ‚‚ๅบงๆจ™ๅœง็ธฎใ™ใ‚Œใฐใ„ใ„ใ“ใจใซๆฐ—ใŒไป˜ใ„ใŸใ€‚

ๅŒบ้–“ๆœ€ๅคงใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T[i=2..N]$ ใฏใ€้ง… $B_i$ ใซๅˆฐ้”ใงใใ‚‹ๆœ€ๅฐ็•ชๅทใฎใƒญใƒผใƒ—ใ‚ฆใ‚งใ‚คไผš็คพ(ใ‚’ๅบงๆจ™ๅœง็ธฎใ—ใŸ็•ชๅท)ใจใ™ใ‚‹ใ€‚่ฉฒๅฝ“ใ™ใ‚‹ไผš็คพใŒใชใ‘ใ‚Œใฐ $-\infty$ ใจใ™ใ‚‹ใ€‚ใใ†ใ™ใ‚‹ใจ $T[2..N]$ ใฏใ€ใ‚ใ‚‹ไผš็คพ $D_i$ ใ‹ใ‚‰ใฟใฆใ€ใƒ•ใƒชใƒผใƒ‘ใ‚นใงๅ…จ้ง…ใ‚’็ถฒ็พ…ใ™ใ‚‹ใซใฏ $T[]..D_i$ ใ‚’ใƒ•ใƒชใƒผใƒ‘ใ‚นใซๅซใพใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„($T &lt; 0$ ใชใ‚‰ใƒ•ใƒชใƒผใƒ‘ใ‚นใ‚’ๆง‹ๆˆไธๅฏ่ƒฝใงใ‚ใ‚‹)ใ€‚

ใ“ใ‚Œใ‚’ $D_{r=0..N-1}$ ใซใคใ„ใฆ็นฐใ‚Š่ฟ”ใ™ใ€‚ไผš็คพ $r$ ใŒ้‹ๅ–ถใ™ใ‚‹ใƒญใƒผใƒ—ใ‚ฆใ‚งใ‚คใฎๅˆฐ็€ๅœฐ $B$ ใซใคใ„ใฆใ€ $T[B] = r$ ใซๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ใใฎๅพŒ $T[] \leq 0$ ใชใ‚‰ใ€ไผš็คพ $r$ ใ‚’ๅŒบ้–“ๅณ็ซฏใจใ™ใ‚‹ใƒ•ใƒชใƒผใƒ‘ใ‚นใฎๅทฆ็ซฏ $l = T[]$ ใ‚’ $L[r] = l$ ใจใ™ใ‚‹ใ€‚ๅŒๆง˜ใซ $R[l] = max(R[l])r$ ใจใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช $L,R,X$ ใซๅฏพใ—ใฆใ€ $L$ ไปฅไธŠใฎๆœ€ๅฐใฎไผš็คพใ‚’ $l$ ใจใ™ใ‚‹ใจใ€ $R[l] \leq R+X$ ใชใ‚‰ใƒ•ใƒชใƒผใƒ‘ใ‚นใ‚’ๆง‹ๆˆๅฏ่ƒฝใงใ‚ใ‚‹ใ€‚ๅŒๆง˜ใซ $R$ ไปฅไธ‹ใฎๆœ€ๅฐใฎไผš็คพใ‚’ $r$ ใจใ™ใ‚‹ใจใ€ $L[r] \geq L-X$ ใชใ‚‰ใƒ•ใƒชใƒผใƒ‘ใ‚นใ‚’ๆง‹ๆˆๅฏ่ƒฝใงใ‚ใ‚‹ใ€‚ใ“ใฎๅฐ‘ใชใใจใ‚‚ใฉใกใ‚‰ใ‹ไธ€ๆ–นใŒๆˆใ‚Š็ซ‹ใฆใฐ็ญ”ใˆใฏ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚

JOI 2024/2025 ๆœฌ้ธ ้ŽๅŽปๅ•-D

28็‚นใ—ใ‹ๅ–ใ‚Œใชใ„ใฎใงใ€ใŸใถใ‚“ๅ˜˜่งฃๆณ•ใงใ‚ใ‚‹ใ€‚

่ฆณๅฎขใฎๅ”ฑใˆใŸๆ•ฐใ‚’2ๅ›ž้€ฃ็ถš็„ก่ฆ–ใงใใชใ„ใฎใงใ€ใŠใใ‚‰ใไปฅไธ‹ใฎๅ‹•็š„่จˆ็”ปๆณ•ใŒๆˆ็ซ‹ใ™ใ‚‹ใ€‚

$DP[i][0]$ ใฏใ€ $i$ ็•ช็›ฎใฎ่ฆณๅฎขใŒ $A_i$ ใ‚’ๅ”ฑใˆใŸใจใใ€ๅๅฟœใ—ใŸๅพŒใฎ็Šถๆ…‹ใงใ‚ใ‚‹ใ€‚ $DP[i][1]$ ใฏใ€ $i$ ็•ช็›ฎใฎ่ฆณๅฎขใŒ $A_i$ ใ‚’ๅ”ฑใˆใŸใจใใ€็„ก่ฆ–ใ—ใŸๅพŒใฎ็Šถๆ…‹ใงใ‚ใ‚‹ใ€‚็Šถๆ…‹้ท็งปใ‚’่€ƒใˆใ‚‹ใจใ€ไปฅไธ‹ใŒๆˆ็ซ‹ใ™ใ‚‹ใ€‚

  • $DP[i+1][0] = min(DP[i][0], DP[i+1][1])$
  • $DP[i+1][1] = DP[i][0]$

ๅ•้กŒใฏ $DP[i]$ ใฎๅฎš็พฉใ‚’ใฉใ†ใ™ใ‚‹ใ‹ใงใ‚ใ‚‹ใ€‚ $A_i \leq 21$ ใ‚ˆใ‚Šใ€ใƒใ‚ฏใ‚ฟใ‚คใฎ้•ทใ• $j$ ใฎใƒขใƒ‡ใƒซใฎๆ•ฐใ‚’่ฆ็ด ๆ•ฐ21ใฎใƒ™ใ‚ฏใ‚ฟใง่กจ็พใ™ใ‚‹ใ€‚ใ“ใฎ่งฃๆณ•ใง28็‚นๅ–ใ‚Œใ‚‹ใ€‚

  • $DP[0][0]$ ใ‚’ $(0,..,0)$ ใ€ $DP[0][1]$ ใ‚’ $(0,1,0,..,0)$ ใ™ใ‚‹ใ€‚
  • $DP[i][]$ ใซ $A_i$ ไปฅไธ‹ใฎใƒขใƒ‡ใƒซใงใƒใ‚ฏใ‚ฟใ‚คใฎๆœ€ใ‚‚้•ทใ„ใƒขใƒ‡ใƒซใŒใ„ใŸใ‚‰็ฝฎใๆ›ใˆใ‚‹ใ€‚ใ„ใชใ‘ใ‚Œใฐ $A_i$ ใฎใƒขใƒ‡ใƒซใ‚’ไธ€ไบบๅข—ใ‚„ใ™ใ€‚
  • $min(DP[i][0], DP[i+1][1])$ ใฎๅฎš็พฉใ‚’่พžๆ›ธ้ †ใจใ™ใ‚‹ใ€‚ใ‚ˆใ‚Šๆญฃ็ขบใซใฏใƒขใƒ‡ใƒซใฎไบบๆ•ฐใŒๅฐ‘ใชใ„ๆ–นใ€ใƒขใƒ‡ใƒซใŒๅŒๆ•ฐใชใ‚‰ใƒใ‚ฏใ‚ฟใ‚คใŒๆœ€ใ‚‚้•ทใ„ใƒขใƒ‡ใƒซใ‹ใ‚‰ไบบๆ•ฐใ‚’้ †ใซๆฏ”่ผƒใ—ใŸ็ตๆžœใจใ™ใ‚‹ใ€‚ใŠใใ‚‰ใใ“ใ“ใŒ้–“้•ใฃใฆใ„ใ‚‹ใ€‚
  • $min(\sum DP[N][0], \sum DP[N][1])$ ใ‚’็ญ”ใˆใจใ™ใ‚‹ใ€‚

ABC 437-A

3ๅฎŒ่Œถใƒ‘ใƒ•ใ‚ฉใงๅคงๆ•—ใ—ใŸใ€‚Cๅ•้กŒใ‚’่งฃใ‘ใชใ„็„ฆใ‚Šใ‹ใ‚‰ๅฎŒๅ…จใซใƒšใƒผใ‚นใŒไนฑใ‚Œใ€Dๅ•้กŒใฏ2ใƒšใƒŠใ€Eๅ•้กŒใฏใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใซ้–“ใซๅˆใ‚ใชใ„ใฎใซ่งฃ็ญ”ๆ™‚้–“ใ‚’ไฝฟใ„ใ€ใ‚ใฃใ•ใ‚Š่งฃใ‘ใ‚‹Fๅ•้กŒใ‚’ใ†ใฃใ‹ใ‚Šๆจใฆใฆใ—ใพใฃใŸใ€‚่พ›ใ†ใ˜ใฆๆฐด่‰ฒใซใฏๆฎ‹ใฃใŸใŒใ€A,B,D,F 4ๅฎŒใ ใฃใŸใ‚‰ๆฐดใƒ‘ใƒ•ใ‚ฉใ ใฃใŸใฎใงๅ•้กŒ้ธใณใ‚’้–“้•ใˆใ™ใŽใงใ‚ใ‚‹ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$12A + B$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 437-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ•้กŒๆ–‡ใŒใ‚„ใ‚„ใ“ใ—ใ„ใŒใ€ๅคš้‡ใƒซใƒผใƒ—ใง่งฃใ‘ใ‚‹ใ€‚

  • $A_{i=1..H,}$ ใใ‚Œใžใ‚Œใซใคใ„ใฆ
  • $A_{i,j=1..W}$ ใใ‚Œใžใ‚ŒใŒ
  • $B$ ใซๅซใพใ‚Œใ‚‹ๅ›žๆ•ฐใ‚’ๆ•ฐใˆใ‚‹

$A_{1..H,}$ ใซใคใ„ใฆใฎๅ›žๆ•ฐใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 437-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒˆใƒŠใ‚ซใ‚คใฎๆๅคฑใŒๅฐใ•ใ„้ †ใซใ€ใ‚ฝใƒชใ‚’ๅผ•ใๅดใ‹ใ‚‰ใ‚ฝใƒชใซไน—ใ‚‹ๅดใซ็งปใ‚Œใฐใ„ใ„ใ€‚

ใƒˆใƒŠใ‚ซใ‚ค $i$ ใ‚’ใ‚ฝใƒชใ‚’ๅผ•ใๅดใ‹ใ‚‰ใ‚ฝใƒชใซไน—ใ‚‹ๅดใซ็งปใ‚‹ใจใ€ๅผ•ใๅŠ›ใŒ $P$ ไธ‹ใŒใ‚Šใ€้‡้‡ใŒ $W$ ๅข—ใˆใ‚‹ใฎใงใ€ $P + W$ ใ ใ‘ๆใ™ใ‚‹ใ€‚ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏ $P - W$ ใจๆ€ใ„่พผใ‚“ใงๆœ€ๅพŒใพใง่งฃใ‘ใชใ‹ใฃใŸใ€‚

ใƒˆใƒŠใ‚ซใ‚คใ‚’ $(P + W, P, W)$ ใฎๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ™ใ‚‹ใ€‚ๆœ€ๅˆใฏๅ…จใƒˆใƒŠใ‚ซใ‚คใ‚’ๅผ•ใๅดใซใ—ใฆใ€ๅผ•ใๅŠ› $S = \sum P$ ใ€้‡้‡ $T = 0$ ใซใ™ใ‚‹ใ€‚ใƒˆใƒŠใ‚ซใ‚คใ‚’ใ‚ฝใƒชใซไน—ใ›ใ‚‹ใŸใณใซใ€ $S$ ใ‹ใ‚‰ $P$ ใ‚’ๅผ•ใใ€ $T$ ใซ $W$ ใ‚’่ถณใ™ใ€‚ $i$ ้ ญ่ผ‰ใ›ใฆ $S &lt; T$ ใซใชใฃใŸใ‚‰ใ€ ็ญ”ใˆใฏ $i - 1$ ใงใ‚ใ‚‹ใ€‚

ABC 437-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใชใœใ‹ๅฎŸ่ฃ…ใ‚’้–“้•ใˆใฆ2ใƒšใƒŠใ—ใŸใ€‚

$A$ , $B$ ใ‚’ใใ‚Œใžใ‚Œๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ—ใฆใ‚‚็ญ”ใˆใฏๅค‰ใ‚ใ‚‰ใชใ„ใฎใงใใ†ใ™ใ‚‹ใ€‚ใใ‚Œใจ $N &gt; M$ ใชใ‚‰ $N,M$ ใŠใ‚ˆใณ $A,B$ ใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใ‚‹ใ€‚

$B$ ใ‚’ไบŒๅˆ†ๆŽข็ดขใ—ใฆใ€ $A_i$ ไปฅไธŠใฎ่ฆ็ด ใŒ $j$ ็•ช็›ฎใŠใ‚ˆใณใใ‚Œไปฅ้™ใซใ‚ใ‚‹ใจใ™ใ‚‹ใ€‚ $j$ ็•ชๆœชๆบ€ใฎ่ฆ็ด ใซใคใ„ใฆ็ญ”ใˆใฏ $(j-1)A_i - \sum_{k=1}^{j-1}$ ใงใ‚ใ‚Šใ€ $j$ ็•ชใŠใ‚ˆใณใใ‚Œไปฅ้™ใซใคใ„ใฆ็ญ”ใˆใฏ $\sum_{k=j}^{N} - (N-j+1)A_i$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’128-bitๆ•ดๆ•ฐใ‚’็”จใ„ใฆใ€ๅ€คใŒ่ฒ ใซใชใ‚‰ใšใ‚ชใƒผใƒใƒผใƒ•ใƒญใƒผใ—ใชใ„ใ‚ˆใ†ใซๆฑ‚ใ‚ใ‚‹ใ€‚็ดฏ็ฉๅ’Œใฏไบ‹ๅ‰ใซๆฑ‚ใ‚ใฆใŠใใ€‚

็ญ”ใˆใŒ0ไปฅไธŠ998244353ๆœชๆบ€ใซใชใ‚‹ใ‚ˆใ†ใซ็ดฐใ‹ใๆญฃ่ฆๅŒ–ใ™ใ‚Œใฐใ€ __int128 ใงใฏใชใ int64_t ใง ่งฃใ‘ใ‚‹ ใ€‚

constexpr Num Mod = 998244353;
Num normalize(Num x) {
    return (Mod + (x % Mod)) % Mod;
}

ไปปๆ„็ฒพๅบฆๆ•ดๆ•ฐใ‚’ไฝฟใฃใฆใ‚‚ ่งฃใ‘ใ‚‹ ใŒใ€ boost::multiprecision::cpp_int ใฎใพใพๆญฃ่ฆๅŒ–ใ—ใฆใ‹ใ‚‰ long long int ใซใ‚ญใƒฃใ‚นใƒˆใ—ใชใ„ใจใ‚ชใƒผใƒใƒผใƒ•ใƒญใƒผใ™ใ‚‹ใ€‚

ABC 437-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒ“ใƒผใƒ ใ‚ตใƒผใƒใฃใฝใๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚ใŸใ ใ—ๅŒใ˜ๆทฑใ•ใงๅŒใ˜ๅ€คใฎ้ƒจๅˆ†ๆœจใ‚’ๅŒไธ€่ฆ–ใ™ใ‚‹ใ€‚

ๆŽข็ดขๅฏพ่ฑกใฎ้ ‚็‚น้›†ๅˆใ‚’ $S$ ใจใ™ใ‚‹ใ€‚ $S$ ใฏ std::deque ใซใ—ใฆๆŒฟๅ…ฅ้ †ๅบใ‚’ไฟๆŒใ—ใ€ๅ‰ใ‹ใ‚‰ใ‚‚ๅพŒใ‚ใ‹ใ‚‰ใ‚‚ๆŒฟๅ…ฅใงใใ‚‹ใ€‚

่พบใŒ $(x,y)$ ใงใ‚ใ‚‹ใ‚ˆใ†ใชใ‚ฐใƒฉใƒ• $G$ ใ‚’ๆง‹ๆˆใ™ใ‚‹ใ€‚ๆœ€ๅˆใซๆ นใคใพใ‚Š้ ‚็‚น0ใ‹ใ‚‰ใฎ่ท้›ขใŒ1ใฎๅ„้ ‚็‚น $i$ ใซใคใ„ใฆใ€ $(1,y_i,i)$ ใฎๆ˜‡้ †ใซ $S$ ใฎๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏๆ นใ‹ใ‚‰ใฎ่ท้›ขใŒ $L$ , ้ ‚็‚นใฎๅ€คใŒ $v=y_i$ , ้ ‚็‚น็•ชๅทใŒ $i$ ใฎใจใใซ $(L,v,i)$ ใ‚’่ฆ็ด ใจใ™ใ‚‹ใ€‚ไฝตใ›ใฆใ€็ญ”ใˆใฎ้ ‚็‚น็•ชๅทๅˆ— $W$ ใซใ€ $i$ ใ‚’้ †็•ชใซๆœซๅฐพใซๅŠ ใˆใ‚‹ใ€‚

$S$ ใฎใ†ใกๅ…ˆ้ ญใ‹ใ‚‰ใ€ $L$ ใŠใ‚ˆใณ $v$ ใŒ็ญ‰ใ—ใ„่ฆ็ด ใ‚’ใพใจใ‚ใฆๆ‰ฑใ†ใ€‚

  • ่ฆ็ด  $(L,v,i)$ ใ‚’ $S$ ใ‹ใ‚‰ๅ–ใ‚Š้™คใ„ใฆใ€ๅˆฅ้€” $T$ ใซไฟๅญ˜ใ™ใ‚‹ใ€‚ๅ„ $i$ ใ‚’ $W$ ใฎๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹
  • $T$ ใฎๅ„่ฆ็ด  $(L,v,i)$ ใซใคใ„ใฆใ€้ ‚็‚น $i$ ใฎๅญ้ ‚็‚น $u$ ใใ‚Œใžใ‚Œใซใคใ„ใฆ $(L+1, y_u, u)$ ใ‚’ๆŽข็ดขๅ€™่ฃœ $U$ ใซๅŠ ใˆใ‚‹
  • ๆœ€ๅพŒใซ $U$ ใ‚’ $S$ ใฎๅ…ˆ้ ญใซๅŠ ใˆใ‚‹ใ€‚ $U$ ใฎๆœซๅฐพใ‹ใ‚‰้ †ใซ $S$ ใซ std::deque::push_front ใ™ใ‚‹

ใ“ใ‚Œใ‚’็นฐใ‚Šๆ›ฟใˆใ—ใฆใ€ $S$ ใŒ็ฉบใซใชใฃใŸใ‚‰ใ€็ญ”ใˆ $W$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

std::list ใ‚’ไฝฟใ„ใ€ใƒ“ใƒผใƒ ใฎ็ฏ„ๅ›ฒใ‚’ๅŒบๅˆ‡ใ‚‹ใƒ•ใ‚งใƒณใ‚นใ‚’ๅฐŽๅ…ฅใ™ใ‚‹ใจใ€ ๅฎŸ่ฃ… ใฎ่ฆ‹้€šใ—ใŒใ‚ˆใใชใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌ้€šใ‚ŠTrieๆœจใ‚’ไฝฟใ†ใจ ใ“ใ† ๅฎŸ่ฃ…ใงใใ‚‹ใ€‚ ใƒใ‚คใƒณใ‚ฟ ใ‚’ไฝฟใฃใฆใ‚‚ใ„ใ„ใŒ std::vector ไธŠใซTrieๆœจใ‚’ๆง‹็ฏ‰ใงใใ‚‹ใ€‚ใ—ใ‹ใ—Trieๆœจ่งฃๆณ•ใ‚’่‡ชๅŠ›ใงๆ€ใ„ใคใๆฐ—ใŒใ—ใชใ„ใ€‚

ABC 437-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ณใƒณใƒ†ใ‚นใƒˆไธญใฏใ€C,Eๅ•้กŒใ‚’่งฃใ‘ใšใ€ๆฎ‹ใ‚Šๆ™‚้–“ใŒๅฐ‘ใชใ„็Šถๆ…‹ใงๅ•้กŒๆ–‡ใ‚’่ชญใ‚“ใ ใ€‚ใ‚‚ใ—ใ‹ใ—ใŸใ‚‰่งฃใ‘ใชใ„ใ‹ใจๆ€ใฃใŸใŒใ€ใ‚ณใƒณใƒ†ใ‚นใƒˆๅพŒใซ17ๅˆ†ใง่งฃใ‘ใฆใ—ใพใฃใŸใ€‚ๅๅˆ†ๆฎ‹ใ‚Šๆ™‚้–“ใง้–“ใซๅˆใฃใŸใ—ใ€ใใ‚‚ใใ‚‚C,Eๅ•้กŒใ‚’ๆจใฆใฆFๅ•้กŒใ‹ใ‚‰่งฃใในใใ ใฃใŸใ€‚็ตๆžœ็š„ใซๅ•้กŒ้ธใณใ‚’้–“้•ใˆใฆใƒ‘ใƒ•ใ‚ฉใ‚’500ไธ‹ใ’ใฆใ—ใพใฃใŸใ€‚

ใ„ใ‹ใซใ‚‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซไฝ•ใ‚’่ผ‰ใ›ใ‚‹ใ‹ใงใ‚ใ‚‹ใ€‚ใƒžใƒณใƒใƒƒใ‚ฟใƒณ่ท้›ขใฎๅฎš็•ช้€šใ‚Šใ€ $S = x + y$ ใ€ $D = x - y$ ใจๅค‰ๆ›ใ™ใ‚‹ใ€‚ $min(S), max(S), min(D), max(D)$ ใ‚’่ผ‰ใ›ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎๅŒบ้–“ๅˆๆˆใฏ $min$ ใฏ $min$ , $max$ ใฏ $max$ ใ‚’ๅ–ใ‚‹ใ€‚ $min$ ใฎๅ˜ไฝๅ…ƒใ‚’ $\infty$ ใ€ $max$ ใฎๅ˜ไฝๅ…ƒใ‚’ $-\infty$ ใซใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช1ใฏ $X,Y$ ใ‚’ไฝฟใฃใฆใ€ไธŠ่จ˜ใฎๅ€คใฎ็ต„ใ‚’ไธ€็‚นๆ›ดๆ–ฐใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช2ใฏๅŒบ้–“ $S = x + y$ ใ€ $D = x - y$ ใจๅค‰ๆ›ใ™ใ‚‹ใ€‚ๅŒบ้–“ $[L,R] $ใฎ $min(S),max(S),min(D),max(D)$ ใซๅฏพใ—ใฆ $|S - min(S)|, |S - max(S)|, |D - min(D)|, |D - max(D)|$ ใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

โš ๏ธ **GitHub.com Fallback** โš ๏ธ