0. ã¯ããã«
- ã¬ããã³ãŒããŒãæãããç«¶ããã»AtCoderäžéã®ã¬ã€ãã©ã€ã³ãåçŽç·šïŒç«¶ãããå§ãããïŒã
- ã¬ããã³ãŒããŒãæãããç«¶ããã»AtCoderäžéã®ã¬ã€ãã©ã€ã³ãäžçŽç·šïŒç®æãæ°Žè²ã³ãŒããŒïŒã
ããã®ç¶ãã§ãïŒ
äžçŽç·šããèªãæ¹ãž
è¿å¹ŽãAtCoder ãäžå¿ãšããç«¶æããã°ã©ãã³ã°ïŒç«¶ããïŒã®ååšæãæ¥ã«æ¥ã«é«ãŸã£ãŠããŠããŸããè¿å¹Žã§ã¯ãAtCoderJobs ãšãã AtCoder ã§ã®å®åã«å¿ããŠæ±äººã«å¿åã§ãããµãŒãã¹ããã¢ã«ãŽãªãºã 宿æ€å®ãšããåã®æ€å®ãµãŒãã¹ãçŸããŠããŠããŸãã
ãããªäžã**ãç«¶ããã§ã©ããã£ãŠäžéããã°è¯ãã®ãããããªãã**ãšæãæ©ãã§ããæ¹ã¯å€ããšæããŸãããã®æ©ã¿ããå®å垯ããšã«ç°ãªãã
- æåã«äœãããã°è¯ãã®ãæ©ãã§ããç«¶ããæªçµéšè ããã
- ç«¶ããæçžŸäžäœã«é£ã蟌ãããã«ã¯äœãããã°è¯ãã®ãæ©ãã§ãã人ããã
- éšæŽ»ã瀟å ãªã©ã§ãã©ãããç«¶ããã®æãæ¹ãããã°è¯ãã®ãæ©ãã§ãã人ããã
ãšæããŸããããã§æ¬èšäºã§ã¯ãç«¶æããã°ã©ãã³ã°ã§äžéããããã«ã¯ã©ãããããšãåŠã¹ã°è¯ãã®ããã©ãããç·Žç¿ãããã°è¯ãã®ãã®ã¬ã€ãã©ã€ã³ãã¬ãã«å¥ã«ç€ºããäžéã«åœ¹ç«ãŠãŠãããããšãæå€§ã®ç®æšãšããŠãããŸãã
ç®æ¬¡
åçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 0. | ã¯ããã« | |
| 1-1. | ç«¶ãããšã¯äœã | ãããããµããŒãããŠãããŸã |
| 1-2. | ç«¶ããã® 6 ã€ã®é¢çœã | ãç«¶ããã£ãŠãé¢çœãããäŒããŠãããŸã |
| 1-3. | æ©éç«¶ãããå§ããŠã¿ãã | |
| 1-4. | AtCoder ã®ã¬ãŒãã£ã³ã°ãšã¯ | |
| 1-5. | ãè¶è²ã³ãŒããŒãã§èŠæ±ããã 4 ã€ã®ããš | |
| 1-6. | ãè¶è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | åçŽç·šã®ã¡ã€ã³ã§ã |
| 1-7. | TipsïŒ AtCoder ã®éå»åãè§£ãã䟿å©ãªãµã€ã | |
| 1-8. | ããŸãïŒç«¶ããã«ããã C++ ã®ããã |
äžçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 2-1. | ãæ°Žè²ã³ãŒããŒãã§èŠæ±ããã 4 ã€ã®ããš | |
| 2-2. | ãæ°Žè²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | äžçŽç·šã®ã¡ã€ã³ã§ã |
| 2-3. | åéå¥ãåäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 å | ãã® 100 åè§£ãã°å®åäžãããšæããŸã |
| 2-4. | ãæ°Žè²ã³ãŒããŒããç®æã人ã®ããã® Tips 5 å |
äžçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 3-1. | ãé»è²ã³ãŒããŒãã§èŠæ±ããã 6 ã€ã®ããš | |
| 3-2. | ãé»è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | äžçŽç·šã®ã¡ã€ã³ã§ã |
| 3-3. | åéå¥ãäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 + 50 å | ãã® 150 åã§å®åäžãããŸã |
| 3-4. | ãç«¶ããå žå 90 åãã®ããã | æ°ãã«èªçããææã§ã |
| 3-5. | ãé»è²ã³ãŒããŒããç®æã人ã®ããã® Tips 4 å | |
| 4. | ãæ©è²ã³ãŒããŒãã«ãªãããã«ã¯äœãããã°è¯ããïŒ | æ©è²ãŸã§ãµããŒãããŸã |
| 5. | ãæ©è²ã³ãŒããŒãã®å ãïœã¬ãã³ã³ç«¶æãšããŠã®ç«¶ããã®ã¯ããŸãïœ | |
| 6. | ãããã« |
3-0. äžçŽç·šã§ç޹ä»ããããš
äžçŽç·šã§ã¯ãAtCoder ã§é»è²ã³ãŒããŒïŒã¬ãŒãã£ã³ã° 2000ïŒããããŠæ©è²ã³ãŒããŒïŒã¬ãŒãã£ã³ã° 2400ïŒãŸã§äžéããæ¹æ³ãèšããŸãã
ãªããAtCoder ã®ã¬ãŒãã£ã³ã°ã¯ä»¥äžã®éãã§ããé»è²ã³ãŒããŒã ãšäžäœ 2%ãæ©è²ã³ãŒããŒã ãš**äžäœ 0.6%**ãããã§ãã1
| ã¬ãŒãã£ã³ã° | è² | çžå¯Ÿçãªäœçœ® | 絶察çãªäœçœ® |
|---|---|---|---|
| 2800+ | èµ€ | äžäœ 0.2% | |
| 2400-2799 | æ© | äžäœ 0.6% | |
| 2000-2399 | é» | äžäœ 2% | ã¢ã«ãŽãªãºã ã®ç ç©¶è·ã»ç ç©¶éçºã§éå®ãããã¬ãã« |
| 1600-1999 | é | äžäœ 5% | ã»ãšãã©ã®ITäŒæ¥ã§ã¢ã«ãŽãªãºã èœåãã«ã³ã¹ããã |
| 1200-1599 | æ°Ž | äžäœ 10% | 忰以äžã®ITäŒæ¥ã§ã¢ã«ãŽãªãºã èœåãã«ã³ã¹ããã |
| 800-1199 | ç· | äžäœ 20% | ãšã³ãžãã¢ãšããŠããªãåªç§ |
| 400-799 | è¶ | äžäœ 35% | åŠçãªãåªç§ |
| 1-399 | ç° | äžäœ 100% | |
| (2020/08/03 çžå¯Ÿçãªäœçœ®ãä¿®æ£ (æŽæ°) ããŸãã) | |||
| ⻠絶察çãªäœçœ®ã«é¢ããŠã¯ AtCoder 瀟é·ã»chokudai ããã®ããã° ããœãŒã¹ã§ãã | |||
![]() |
3-1. ãé»è²ã³ãŒããŒãã§èŠæ±ããã 6 ã€ã®ããš
AtCoder ã§é»è²ã³ãŒããŒãã€ãŸãã¬ãŒãã£ã³ã° 2000 ã«å°éããã«ã¯ã
- AtCoder Beginner Contest ã§ã»ãŒç¢ºå®ã« 5 åæ£è§£ã§ãã
- AtCoder Beginner Contest ã§ç¢ºç 50% ã§å šåïŒ6 åïŒæ£è§£ã§ãã
- ããã»ã©é£ãããªãåé¡ïŒ500 ç¹ä»¥å
ïŒãããªãéãè§£ãããšãã§ãã
- å顿¯ã®æ£è§£è æ°ã«ããããA åé¡ã ãš 1 åãB åé¡ã ãš 2 åãC åé¡ã ãš 5 åãD åé¡ã ãš 10 åãE åé¡ã ãš 20 åãç®å®ã
- ç®å®éãã®æéã§è§£ãã°ã40 å以å ã§ 5 åæ£è§£ã§ããã
- AtCoder Grand Contest (AGC) ãªã©ã®æ°åŠçèå¯ãèŠããã³ã³ãã¹ãã§ããããçšåºŠã®æŠçžŸãæ®ã
- äŸãã° AGC ã®å Žåã2 åæ£è§£ä»¥äžãæãŸãã
ããšãèŠæ±ãããŸãããã®ããã«ã¯ã以äžã® 6 ã€ã®ããšãã§ããã°è¯ããšèããŸããïŒãã¡ãããæ°Žè²ã³ãŒããŒã§èŠæ±ããã 4 ã€ã®ããšã¯å šãŠã¯ãªã¢ããŠããå¿ èŠããããŸããïŒ
æ¡ä»¶ 1
ãããã°ã©ãã³ã°ã³ã³ãã¹ããã£ã¬ã³ãžããã¯ïŒè»æ¬ïŒãã«èŒã£ãŠãã倧åã®ã¢ã«ãŽãªãºã ãšããŒã¿æ§é ãçè§£ãããå ·äœçã«ã¯ã以äžã®ã¢ã«ãŽãªãºã ïŒèš 23 åïŒãšããŒã¿æ§é ïŒèš 5 åïŒãçè§£ããã
(i) äžçŽç·š 2-1. ç¯ã«æžãããŠãã 12 åã®ã¢ã«ãŽãªãºã ãš 3 åã®ããŒã¿æ§é ã
| å šæ¢çŽ¢ | äºåæ¢çŽ¢ | æ·±ãåªå æ¢çŽ¢ | å¹ åªå æ¢çŽ¢ |
| åçèšç»æ³ | ãã€ã¯ã¹ãã©æ³ | ã¯ãŒã·ã£ã«ããã€ãæ³ | ã¯ã©ã¹ã«ã«æ³ |
| é«éãªçŽ æ°å€å®æ³ | ã¹ãä¹ã®é«éãªèšç® | éå ã®èšç® | 环ç©åã»ãããæ³ |
| ã°ã©ãçè« | æš | Union-Find |
(ii) äžçŽç·šã«ã¯æžãããŠããªããè»æ¬ã«ã¯æžãããŠããã11 åã®ã¢ã«ãŽãªãºã ã
| 座æšå§çž® | ååå šåæ | è¡åçŽ¯ä¹ | ãããªã³ã° |
| Grundy æ° | Rolling Hash | å¹³æ¹åå² | æå€§æµ |
| æå°ã«ãã | äºéšã°ã©ãå€å® | äºéšãããã³ã° |
(iii) äžçŽç·šã«ã¯æžãããŠããªããè»æ¬ã«ã¯æžãããŠãã 2 åã®ããŒã¿æ§é ã
| Binary Indexed Tree (BIT) | ã»ã°ã¡ã³ãæšïŒâ»é å»¶è©äŸ¡ã»ã°ã¡ã³ãæšãå«ãïŒ |
æ¡ä»¶ 2
æ¡ä»¶ 1 ã§ç޹ä»ããã¢ã«ãŽãªãºã ã»ããŒã¿æ§é ãã³ã³ãã¹ãäžã«åŒãåºãããããã䜿ããããã«ãªãã
ã€ãŸããæ¬èšäºã§ç޹ä»ãããã¢ã«ãŽãªãºã ããããŒã¿æ§é ããå®å
šã«èº«ã«ã€ãããšããããšã
æ¡ä»¶ 3
ããçšåºŠã®æ°åŠçèå¯ãã§ããããã«ãªãã
â» AtCoder ã«ã¯ãã¢ã«ãŽãªãºã ãæŽ»çšã§ãããã©ãããåãåé¡ã ãã§ãªããæ°åŠçèå¯ãã§ãããã©ãããåãåé¡ãåºãŠããŸããïŒäžçŽç·š 2-3. ç¯ ã®åé¡ 95 ïœ 100 ã§è¿°ã¹ãéãã§ããïŒç¹ã«ãåé¡ãé£ãããªãã«ã€ãããã®åŸåã匷ãŸããŸãããã®ãããé»è²ã³ãŒããŒã«ãªãããã«ã¯ãæ°åŠçèå¯ãèŠããåé¡ãååã«è§£ããå¿ èŠããããŸãã
æ¡ä»¶ 4
25 è¡çšåºŠã®ããã°ã©ã ã§ããã°ãã»ãŒãã°ãããã«æžãããšãã§ããã
60 è¡çšåºŠã®ããã°ã©ã ã§ãã£ãŠããããçšåºŠéãæžãããšãã§ããããã°ãããŠããå¹³åã㊠10 å以å
ã§ãã°ã解決ã§ããã
â» å®éã«ã60 è¡çšåºŠã®ããã°ã©ã ãããã°åãå«ããŠå¹³åã㊠30 å以å ã§æžããããã«ãªãã°ãAtCoder Beginner Contest ã§å šåæ£è§£ 75 å以å ãååæããŸãã
æ¡ä»¶ 5
ã¿ã€ãã³ã°ãããçšåºŠé«éã«ã§ãããçµéšåã§ã¯ã1 åéã«ããã 350 ã¿ã€ãæ°ä»¥äžã®é床ãããããšãæãŸããã
å®éã«ãæçžŸäžäœè ã®äžã«ãã¿ã€ãã³ã°ãé ãïŒ200 ã¿ã€ãæ°ãªã©ïŒäººã¯äžéšããŸãããç¹ã« AtCoder Beginner Contest ãæŠãã«ããã£ãŠãã¿ã€ãã³ã°ã®é床ã¯ãšãŠãéèŠã§ãã
äŸãã°ãAtCoder Beginner Contest 148 ã«ãããŠã30 åã§å šå®ããã®ãš 40 åã§å šå®ããã®ã§ã¯ãããã©ãŒãã³ã¹ã 250 ä»¥äž ç°ãªããŸãã
æ¡ä»¶ 6
AtCoder ã®éå»åãç®å®ãšã㊠1000 å以äžè§£ããç«¶ããã®åé¡ã«å®å šã«æ £ããã
è£è¶³
äžã® 6 ã€ã®æ¡ä»¶ãæºããããã«ãªãã°ãAtCoder Beginner Contest ã® E åé¡ãŸã§ã¯å®å®ããŠæ©è§£ãã§ãããšæããŸããF åé¡ããæ£è§£è æ°ã 250 人ãè¶ ããæ¯èŒçç°¡åãªåé¡ã§ããã°ãæ£è§£ããããšãã§ãããšæããŸãã
ã¡ãªã¿ã«ãçŽè¿ 15 åã® AtCoder Beginner Contest (ABC141 ïœ ABC155) ã«ãããŠãF åé¡ã®æ£è§£è æ°ã 250 人ãè¶ ããã®ã¯ 7 åã§ãããã®ããã«ãå šåæ£è§£ã 3 - 5 å²ã®ç¢ºçã§éæããã®ãååå¯èœã§ãã
ãŸã 6 ã€ã®æ¡ä»¶ãæºãããšæ°åŠçèå¯åãåäžããŠããã®ã§ãAtCoder Grand Contest ã®åé¡ã段ã ãšè§£ããå²åãå¢ããŠãããšæããŸãã
ããŠãããããã§ããããã«ãªãããã«ã¯ãã©ã®ãããªç·Žç¿ãããã°è¯ãã®ã§ããããã
3-2. ãé»è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³
é»è²ã³ãŒããŒã«å°éããããã«ããã¹ãããšã¯ã以äžã® 7 ã€ã ãšæããŸãã
- ã¹ããã 1: 11 åã®ã¢ã«ãŽãªãºã ãæ°ãã«ãã¹ã¿ãŒããïŒ
- ã¹ããã 2: 2 åã®ããŒã¿æ§é ãæ°ãã«ãã¹ã¿ãŒããïŒ
- ã¹ããã 3: TopCoder SRM ã®åé¡ãè§£ããŠæ°åŠçèå¯åãã€ããïŒ
- ã¹ããã 4: æ¥æ¬æ å ±ãªãªã³ããã¯ïŒJOIïŒã®åé¡ãè§£ããŠå®è£ åãã€ããïŒ
- ã¹ããã 5: éå»åãè§£ããŸããïŒ
- ã¹ããã 6: ãããŒãã£ã«åå ãã§æ©è§£ãåããã£ãšéããïŒ
- ã¹ããã 7: ã¿ã€ãã³ã°ãç·Žç¿ããŠæ©è§£ãåãããã«ç£šãïŒ
ãããããé çªã«èª¬æããŠãããããšæããŸãã
3-2-1. 11 åã®ã¢ã«ãŽãªãºã ãæ°ãã«ãã¹ã¿ãŒããïŒ
é»è²ã³ãŒããŒã«ãªãããã«ãã¹ã¿ãŒããã¹ãã¢ã«ãŽãªãºã ã¯ã以äžã® 23 åã§ãã
| å šæ¢çŽ¢ | äºåæ¢çŽ¢ | æ·±ãåªå æ¢çŽ¢ | å¹ åªå æ¢çŽ¢ |
| åçèšç»æ³ | ãã€ã¯ã¹ãã©æ³ | ã¯ãŒã·ã£ã«ããã€ãæ³ | ã¯ã©ã¹ã«ã«æ³ |
| é«éãªçŽ æ°å€å®æ³ | ã¹ãä¹ã®é«éãªèšç® | éå ã®èšç® | 环ç©åã»ãããæ³ |
| 座æšå§çž® | ååå šåæ | è¡åçŽ¯ä¹ | ãããªã³ã° |
| Grundy æ° | Rolling Hash | å¹³æ¹åå² | æå€§æµ |
| æå°ã«ãã | äºéšã°ã©ãå€å® | äºéšãããã³ã° |
ãã®ãã¡ãæåã® 12 åïŒè¡šã® 1 ïœ 3 è¡ç®ïŒããã¹ã¿ãŒããæ¹æ³ã¯ãäžçŽç·š 2-2-2. ç¯ã§è§£èª¬ããããŠããŸãã®ã§ããã¡ããã芧ãã ãããæ¬ç¯ã§ã¯ãæ®ãã® 11 åãçè§£ã§ããèšäºãã¡ã玹ä»ããããšæããŸãã
座æšå§çž®
ãŸãšãŸã£ã解説èšäºãèŠã€ãããªãã®ã§ããã¡ãã§ç°¡æœã«è§£èª¬ããŠãããŸãã
座æšå§çž®ãšã¯ããšãŠã倧ãã座æšããã£ãŠçŸå®çã«æ±ããªããµã€ãºã§ããå Žåã«ãå§çž®ããŠèšç®éãæãããšãããã¯ããã¯ã§ãã以äžã®ç»åã®ããã«ãçžå¯Ÿçãªäœçœ®é¢ä¿ã厩ããªãããã«å§çž®ããŸããïŒäžæ¬¡å
ã®å Žåã§ããäºæ¬¡å
ã®å Žåã§ãéçšããŸããïŒ

å®è£
ãªã©ãå«ãã詳ããéšåã¯ã以äžã®èšäºã«æžãããŠããŸãã
- 座æšå§çž®ã«ã€ããŠå匷ãã (java)| ãã€ãã®ç«¶ããã¡ã¢
- 座æšå§çž®| å人çãªç«¶ããã¡ã¢
ååå šåæ
$N$ éãã®å šåæã $O(\sqrt{N})$ çšåºŠã®èšç®åæ°ã§å¹ççã«èšç®ããææ³ã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã(2020/08/03 æŽæ°)
è¡å环ä¹
è¡åã®çޝä¹ãç¹°ãè¿ãäºä¹æ³ãå©çšããŠå¹ççã«æ±ãããã¯ããã¯ã§ãããã£ããããæ°ã® $10^{9}$ çªç®ã®å€ãé«éã«æ±ããããæŒžååŒã® $10^{9}$ çªç®ã®å€ãé«éã«æ±ãããããããšã«äœ¿ãããŸãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
ãããªã³ã°
ã$N$ 忬¡ã®èŠçŽ ãç¥ãããããšããç¶æ³ã§é »ç¹ã«äœ¿ããããã¯ããã¯ã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
Grundy æ°
ç«¶ããã«ã¯ãã²ãŒã çè«ã®åé¡ãããåºãŸããã²ãŒã çè«ã®åé¡ãè§£ãã«ããã£ãŠããNimããšããã²ãŒã ã«èŠãããšãã§ãããGrundy æ°ãã¯ç¥ã£ãŠããã¹ãæŠå¿µã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
Rolling Hash
ç«¶ããã§ã¯ãæååã«å¯Ÿããã¯ãšãªã«é«éã«çãããªã©ãšãã£ãåé¡ãããåºãŸããæååç³»ã®åé¡ãè§£ãã«ããã£ãŠãRolling Hash ã¯ç¥ã£ãŠããã¹ãã¢ã«ãŽãªãºã ã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
- ããŒãªã³ã°ããã·ã¥ãš Suffix Arrayãã® 1 ïœ 18 ããŒãž
å¹³æ¹åå²
å¹³æ¹åå²ïŒãã±ããæ³ïŒã¯ãç°¡æœã«æžããšãé·ã $N$ ã®åã $\sqrt{N}$ åããšã«åããŠèããã¢ã«ãŽãªãºã ã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
- ããã°ã©ãã³ã°ã³ã³ãã¹ãã§ã®ããŒã¿æ§é ãã® 19 ïœ 32 ããŒãž
æå€§æµïŒæå€§ãããŒïŒ
æå€§æµã¯ãã°ã©ãäžã®æµãïŒãããŒïŒãæ±ãã¢ã«ãŽãªãºã ã®äžã§ã¯æãç«¶ããã§äœ¿ããããã®ã§ãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
- æå€§æµ (max flow)ãã® 1 ïœ 34 ããŒãž
æå°ã«ãã
ãããŒã§è§£ããç«¶ããã®åé¡ã®äžã«ã¯ãæå°ã«ããåé¡ã«åž°çããããšã§è§£ããåé¡ãå€ãã§ããæå°ã«ããåé¡ã«é¢ããè§£èª¬ãšæ£åœæ§ã®èšŒæã¯ã以äžã®èšäºã«ãŸãšãŸã£ãŠããŸãã
- æå€§æµ (max flow) ã® 35 ïœ 45 ããŒãž
äºéšã°ã©ãå€å®
ãããããäºéšã°ã©ããã£ãŠäœã§ãããïŒãããã¯ãã°ã©ãã®åé ç¹ãéãšèµ€ã§å¡ããšãããéã®é ç¹å士ãç¹ã蟺ããèµ€ã®é ç¹å士ãç¹ã蟺ããååšããªãããã«å¡ãããšãã§ããã°ã©ãã®ããšã§ãã
äºéšã°ã©ãã¯ç¹æ®ãªæ§è³ªãæã£ãŠãããããç«¶ããã§åé¡ã«ãããããšãå€ãã§ãããã®ãããªåé¡ãè§£ãããã«ã¯ãŸããã°ã©ããäºéšã°ã©ããã©ãããå€å®ããªããã°ãªããŸããããã®äºéšã°ã©ãå€å®ã¯ã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
äºéšãããã³ã°
äºéšã°ã©ãã®ãããã³ã°ã¯ã茞éåé¡ãªã©å®äžçã®åé¡ãè§£ããšãã«ãã䜿ãããã¢ã«ãŽãªãºã ã§ãããã¡ãããç«¶ããã§åºé¡ãããããšããããŸãã以äžã®èšäºã§è§£èª¬ãããŠããŸãã
è£è¶³
æ°ãã«åŠç¿ããã¢ã«ãŽãªãºã ã䜿ã£ãŠè§£ããåé¡ã¯ã
ã«èŒã£ãŠããŸãïŒ
3-2-2. 2 åã®ããŒã¿æ§é ãæ°ãã«ãã¹ã¿ãŒããïŒ
åç¯ã§è¿°ã¹ãéããç«¶æããã°ã©ãã³ã°ã«ã¯ã¢ã«ãŽãªãºã ãåŠã¶ããšã倧åã§ããäžæ¹ãããŒã¿æ§é ãåŠã¶ããšã倧äºã§ãã
ããŠãé»è²ã³ãŒã㌠ã«ãªãããã«å¿ èŠãªã¢ã«ãŽãªãºã ã¯ã以äžã® 2 ã€ã§ãã
- Binary Indexed Tree (BIT)
- ã»ã°ã¡ã³ãæšïŒRMQ ã ãã§ãªããé å»¶è©äŸ¡ã»ã°ã¡ã³ãæšãªã©ãå«ãïŒ
ãããã®ã¢ã«ãŽãªãºã ãåŠç¿ã§ããèšäºãã¡ãªã©ã玹ä»ããŸãã
Binary Indexed Tree (BIT)
ç«¶ããã§é »åºã®ããŒã¿æ§é ã®äžã€ã§ãã解説ã¯ã以äžã®èšäºã«ãŸãšãŸã£ãŠããŸãã
- Binary Indexed Treeãã® 1 ïœ 20 ããŒãž
- 21 ããŒãžç®ä»¥éããç«¶ããã®ã©ãããå Žé¢ã§ BIT ã䜿ãããããæžããŠããã®ã§ãèªããšãããšæããŸãã
ã»ã°ã¡ã³ãæš
ç«¶ããã§é »åºã®ããŒã¿æ§é ã®äžã€ã§ããAtCoder ã§ã¯ããã»ã©å€ãèŠãªãã§ãããæ¥æ¬æ å ±ãªãªã³ããã¯ã§ã¯ããšãŠãå€ãã®åé¡ãã»ã°ã¡ã³ãæšã䜿ã£ãŠè§£ããŸãã
åºæ¬çã«ãã»ã°ã¡ã³ãæšã¯
- åçŽãªã»ã°ã¡ã³ãæšïŒRMQ ãŸãã¯ãã®äºçš®ïŒ
- é å»¶è©äŸ¡ã»ã°ã¡ã³ãæš
ã® 2 ã€ã«åãããŸããããããã®è§£èª¬ã¯ã以äžã®èšäºã«ãŸãšãŸã£ãŠããŸãã
å žåïŒïŒRMQ ãè§£ãã¢ã«ãŽãªãºã
- Range Minimum Query (RMQ) ã® 1 ïœ 23 ããŒãžç®
- å³ãçšããŠãããããã解説ãããŠããŸãã
å žåïŒïŒé å»¶ã»ã°ã¡ã³ãæš
- é å»¶è©äŸ¡ã»ã°ã¡ã³ãæšããœã©ã§æžãããããªãã«
- ãé å»¶è©äŸ¡ã»ã°ã¡ã³ãæšãšã¯äœãªã®ãããšãã説æãããé å»¶è©äŸ¡ã»ã°ã¡ã³ãæšã®ã¢ã«ãŽãªãºã ããããŠããã䜿ãã°ã©ããªåé¡ãè§£ããã®ãããŸã§è§£èª¬ãããŠããŸãã
è£è¶³
æ°ãã«åŠç¿ããããŒã¿æ§é ã䜿ã£ãŠè§£ããåé¡ã¯ã
ã«èŒã£ãŠããŸãïŒ
3-2-3. TopCoder SRM ã®åé¡ãè§£ããŠæ°åŠçèå¯åãéããïŒ
åè¿°ã®ãšãããé»è²ã³ãŒããŒã«ãªãããã«ã¯ãã¢ã«ãŽãªãºã 掻çšèœåã ãã§ãªããæ°åŠçèå¯åã身ã«ã€ããå¿ èŠããããŸããäžæ¹ã§ãã¢ã«ãŽãªãºã ãåŠç¿ããã ãã§ã¯æ°åŠçèå¯åã¯èº«ã«ã€ããŸãããæãããŠãã©ã®ãããªç·Žç¿ããããæ°åŠçèå¯åã身ã«ã€ãã®ã§ããããã
ããã§ããå§ãã®ç·Žç¿æ¹æ³ã¯ã
- TopCoder ã® SRM ãè§£ãããš
ã§ããã¡ãªã¿ã«ãSRM ãšã¯ Topcoder ã§éãããç«¶ããã³ã³ãã¹ãã®ããšã§ããç§ã TopCoder ãè§£ãã®ããå§ãããçç±ã¯ä»¥äžã® 2 ç¹ã§ãã
- TopCoder ã®åé¡ã¯ãå šè¬çã«æ°åŠçèå¯åãåãããåé¡ã®å²åã倧ãã
- ãã æ°åŠçèå¯åãåãããã ãã§ã¯ãªããè§£ããæã®åŠã³ãå€ãåé¡ã®å²åã倧ãã
ããã§ãã©ã®ããã«ã㊠TopCoder ã®åé¡ãè§£ãã°ããã®ã§ããããã
TopCoder ã«ç»é²ããæ¹æ³
TopCoder ã®åé¡ãè§£ãã«ã¯ãã¢ã«ãŠã³ããç»é²ããå¿ èŠããããŸããã¢ã«ãŠã³ããç»é²ããæ¹æ³ã¯ä»¥äžã®èšäºã«æžãããŠããŸãã
TopCoder ã§åé¡ãè§£ãæ¹æ³
ããŠãã¢ã«ãŠã³ãç»é²ãå®äºãã人ãžãTopCoder 㯠AtCoder ã®ããã«åé¡é²èŠ§ã»æåºæ¹æ³ãç°¡åã§ã¯ãªãã®ã§ãã©ã®ããã«ããŠåé¡ãèŠãããã©ã®ããã«ããŠæåºãããããããªã人ãå€ããšæããŸãã以äžã®èšäºã«è§£èª¬ãããŠããŸãã®ã§ãæ¯éãèªã¿ãã ããã
SRM Div1 Easy ãåããããïœDiv1 Easy Hunting 50åïœ
ããŠãæ°å€ããã SRM ã®åé¡ã®äžãããäœãè§£ãã°ããã®ã§ãããããæ°Žè²ã³ãŒããŒãéè²ã³ãŒããŒã«ãšã£ãŠã¯ãSRM Div1 Easy ã®é£æåºŠãè§£ãã®ãé©åã§ããAtCoder æç®ã§ 400 ïœ 700 ç¹çžåœã®é£æåºŠã®åé¡ãå€ãã§ãã
ããã§ãSRM Div1 Easy ã®äžã§æ°åŠçèå¯åã身ã«ã€ãæè²çè¯å 50 åã玹ä»ããŸããæ¯éè§£ããŠã¿ãŸãããã
3-2-4. æ¥æ¬æ å ±ãªãªã³ããã¯ïŒJOIïŒã®åé¡ãè§£ããŠå®è£ åãéããïŒ
åç¯ã§ã¯ãé»è²ã³ãŒããŒã«ãªãããã«ã¯ãæ°åŠçèå¯åãå¿ èŠã ãšæžããŸãããäžæ¹ã§ãé»è²ã³ãŒããŒã«ãªãããã«ãå®è£ åãå¿ èŠã ãšæããŸããäŸãã°ã
- 50-70 è¡çšåºŠã®ããã°ã©ã ãçŽ æ©ãæžã
- 50-70 è¡çšåºŠã®é·ãã®ããã°ã©ã ã§ãããã°ã®çºçããåæ°ãã§ããã ãå°ãªããã
ãªã©ãèŠæ±ãããŸããããã§ãå®è£ åãéããããã«ãè§£ãã¹ãæãé©åãªéå»åã¯ã
ã§ããæ¥æ¬æ å ±ãªãªã³ããã¯ã®åé¡ã¯å®è£ ãéããã®ãå€ããå®è£ ã®ç·Žç¿ã«ãªããŸããã¡ãªã¿ã«ããã®ã«ãã£ãŠã¯ 200 è¡ä»¥äžã®å®è£ ãèŠããåé¡ãããã€ããããŸãã
https://joi.goodbaton.com/ ã«é£æåºŠå¥éå»åãªã¹ããèŒã£ãŠããã®ã§ãæ¯éè§£ããŠã¿ãŠãã ãããé£æåºŠã¯ 1 ïœ 12 ã® 12 段éã«åãããŠããã®ã§ãããåå®å垯ããšã®è§£ãã¹ãé£æåºŠã¯ã
| AtCoder ã¬ãŒã | è§£ãã¹ãé£æåºŠåž¯ |
|---|---|
| æ°Žè²ã³ãŒã㌠| 6 ïœ 7 |
| éè²ã³ãŒã㌠| 7 ïœ 9 |
| é»è²ã³ãŒã㌠| 8 ïœ 10 |
3-2-5. éå»åãè§£ããŸããïŒ
é»è²ã³ãŒããŒã«ãªãããã«ã¯ãããããã®éå»åãè§£ãå¿ èŠããããŸããå®éã«ãAtCoder ã®æ£è§£å顿°ãšãé»è²ã³ãŒããŒãéæã§ããå²åã¯ã以äžã®ããã«ãªã£ãŠããŸãã(2019/12/09 æç¹ã®çµ±èšã§ã)2
| æ£è§£å顿° | é»è²ã³ãŒããŒéæå²å |
|---|---|
| 500 - 599 å | 6.8% |
| 600 - 799 å | 11.5% |
| 800 - 999 å | 17.1% |
| 1000 - 1199 å | 35.4% |
| 1200 - 1499 å | 58.8% |
| 1500 - 1999 å | 87.1% |
| 2000 åä»¥äž | 100.0% |
ãã®ãããAtCoder Problems ãªã©ã䜿ã£ãŠãéå»åãè§£ããŸããããšã倧åã§ããããããSRM ã JOI ã®åé¡ãå«ããŠè§£ããããã¢ã«ãŽãªãºã ãããŒã¿æ§é ããã£ããçè§£ã§ããäººã®æ¹ããäžéã¯éããšæããŸãã
ã§ãã®ã§ãéå»åãè§£ãã®ã¯å€§åã§ããããã éå»åããããããã«è§£ãã®ã§ã¯ãªãã3-2-1. ç¯ãã 3-2-4. ç¯ãŸã§ã§è¿°ã¹ãããšãæèããŠéå»ååããããŸãããã
3-2-6. ãããŒãã£ã«åå ããæŽ»çšããŠæ©è§£ãåããã£ãšéããïŒ
äžçŽç·šã§ã¯ãAtCoder Problems ã«ããããŒãã£ã«ã³ã³ãã¹ãã®ãµãŒãã¹ã玹ä»ããŸãããäžæ¹ã2019 幎 11 æãAtCoder å ¬åŒããã³ã³ãã¹ããä»®æ³çã«ããããšãã§ããã·ã¹ãã ãéçºããŸããã
ãããã**ãããŒãã£ã«åå ã**ã§ãã

ããŒãã£ã«åå ã§ã¯ããªã¢ã«ã¿ã€ã ã§ãããŒãã£ã«é äœè¡šããæŽæ°ãããã®ã§ãã³ã³ãã¹ãã®ãããªæèŠã§åé¡ãè§£ãããšãã§ããŸããïŒéå»ã«ããŒãã£ã«åå ããã£ã人ã®äžã§ã®é äœããããŒãã£ã«é äœè¡šã«åæ ãããŸããïŒ

ããŠãæ©è§£ãåãéããããã«ã¯ã以äžã®ããã«ããŒãã£ã«åå ãæŽ»çšãããšè¯ããšæããŸãã
- AtCoder Beginner Contest ã 1 åéžã³ãããŒãã£ã«åå ãããã
- ããã¯ãæã® 4 åç·šæã®ã³ã³ãã¹ãã§ããçŸåšã® 6 åç·šæã®ã³ã³ãã¹ãã§ãè¯ãã
- ã§ããã°è§£ããŠããªãåé¡ãå€ãæ¹ãè¯ãããçŽè¿ 1 ã«æä»¥å ã«è§£ããåé¡ãååšããªãå Žåã¯ãããŒãã£ã«åå ããã³ã³ãã¹ããšããŠéžã¹ãã
- ãããé±ã« 2-3 åãããïŒ4 åç·šæã ãš 50 åã6 åç·šæã ãš 80-100 åã§çµãããšæãã®ã§ã倧ããè² æ ã§ã¯ãªããïŒ
ããäžåæå¹ãªææ®µããã£ãŠãããã¯ããŒãã£ã«åå äžã®èªåãæ¯ãè¿ããšããææ®µã§ããããŒãã£ã«åå åŸã«ãèªåãã³ã³ãã¹ãäžã«ã©ã®ãããªåããããã®ãããããŠå®éã«ã©ãã§æéãåãããã®ãïŒèå¯ããå®è£ ãããã°åããïŒåå ãåæããããšã§ãäžéã¯éããªããšæããŸãããããããã¡ãã¡ããŒãã£ã«åå äžã«èªåã®æåãã¡ã¢ããããšã¯ã§ããŸãããããã§åœ¹ç«ã€ã®ã¯ã
- ããŒãã£ã«åå äžã®ãããœã³ã³ã®ã¹ã¯ãªãŒã³ã®åãããããªã§æ®ã£ãŠãã
ãšããããšã§ããé²ç»ã®æ¹æ³ã«ã€ããŠã¯ãäŸãã° Windows 10 ã®å Žå
- Windows10 ã®æšæºæ©èœã§ç»é¢é²ç»ã®åç»ãšãã£ããã£ãæ®ãæ¹æ³ãã¹ã¯ãªãŒã³ã·ã§ããã
- æå€ãšç°¡åïŒWindows10ã§PCç»é¢é²ç»ããæ¹æ³2ã€
ããèªã¿ãã ãããïŒ@renee ãã ã³ã¡ã³ããé ãããããšãããããŸããïŒ
3-2-7. ã¿ã€ãã³ã°ãç·Žç¿ããŠæ©è§£ãåãããã«ç£šãïŒ
ç«¶æããã°ã©ãã³ã°ã¯ãé床ã®åè² ãšããé¢ããããŸããç¹ã«ãAtCoder Beginner Contest ã§ã¯ãã®é¢ã倧ããã§ããäŸãã°ãAtCoder Beginner Contest 148 ã®å Žåã
| ã¿ã€ã | ããã©ãŒãã³ã¹ |
|---|---|
| 30 åå šå® | 2400 |
| 40 åå šå® | 2146 |
| 50 åå šå® | 1971 |
| 60 åå šå® | 1813 |
ãšãªãã10 åã§ããã©ãŒãã³ã¹ 250 以äžå€ããããšããããŸãããã® 10 åãåãåºãããã«éèŠã«ãªã£ãŠããã®ãã¿ã€ãã³ã°é床ã§ãã
ã¿ã€ãã³ã°ã¯ããªã³ã©ã€ã³ã²ãŒã æèŠã§ç·Žç¿ããããšãã§ããŸããããã§ã䟿å©ãªãµã€ããããã€ã玹ä»ããŸãã
1. å¯¿åžæ
- Flash ã¿ã€ãã³ã°ãå¯¿åžæ - SushiDA -ã
- æ¥æ¬èªã®ã¿ã€ãã³ã°ãç·Žç¿ã§ããŸãã
- ã©ã³ãã³ã°ããã£ãŠã楜ããã§ãã
2. 10FastFingers
- Typing Test English - 10FastFingers.com
- è±èªã®åºæ¬åèª 200 èªã®ã¿ã€ãã³ã°ãç·Žç¿ã§ããŸãã
3. Pæ€ãã¿ã€ãã³ã°
- ç¡æã¿ã€ãã³ã°ç·Žç¿| Pæ€-ICTãããã£ã·ãšã³ã·ãŒåäŒ
- æ¥æ¬èªãšè±èªãäž¡æ¹ã§ããŸãã
- å€ãã®çš®é¡ã®æç« ãåºãŠããã®ã§ãã¿ã€ãã³ã°ã®ç·Žç¿ã®å¹æãæ¯èŒç倧ããã§ãã
ä»¥äž 7 é
ç®ããã¬ã€ãã©ã€ã³ãšããŠèª¬æããŸããã
ãã® 7 é
ç®ããã£ããããã°ãé»è²ã³ãŒããŒãã€ãŸãã¬ãŒãã£ã³ã° 2000 ãéæã§ãã確çã¯ååã«é«ããšèããããŸãã
ãããŠãçãããé»è²ã³ãŒããŒã«ãªãé ã«ã¯ãæ¢ã«ã»ãšãã©ã®äŒç€Ÿã§ã¢ã«ãŽãªãºã æ§ç¯èœåãã«ã³ã¹ãããŠããŸããšããããšãã§ããªãåªç§ãªäººæã«ãªã£ãŠããã®ã§ãã
3-3. åéå¥ãäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 + 50 å
3-2-5. ç¯ã§ã
AtCoder ã®åé¡ã 1500 åè§£ãã°é»è²ã³ãŒããŒã«ãªãã人ã 8 å²ä»¥äž
ãšæžããŸããããããããç¿åŸããã¢ã«ãŽãªãºã ãã©ãããã䜿ããããã«ãªã£ãããã«ãã£ãŠãäžéé床ã倧ããå€ãã£ãŠããŸããããã§ãããããè§£ãããåŠç¿ããã¢ã«ãŽãªãºã ã䜿ããããã«ãªãïŒããšããæè²çè¯åãäžå¿ã«ãæ°Žè²ã³ãŒããŒä»¥äžã®ç«¶ããäžçŽè ã»äžçŽè ãè§£ãã¹ãéå»åãç²Ÿéž 150 åã玹ä»ããããšæããŸãã
1 ïœ 100 åç®
æåã® 100 åã¯ãäžçŽç·šã§ç޹ä»ããåºæ¬çãªã¢ã«ãŽãªãºã ã»ããŒã¿æ§é ã§è§£ããåé¡ãã»ãšãã©ã§ãã
ã«ãŸãšããããŠããŸãã確ãã«åäžçŽè ãšæžããŠããã®ã§ããã100 åäž 40 åçšåºŠãæ°Žè²ã³ãŒããŒã»éã³ãŒããŒçžå¿ã®é£æåºŠã§ããã§ãã®ã§ãé»è²ã³ãŒããŒãéæããŠããªããã¡ã¯ã100 åå šéšè§£ãå¢ãã§åããããšãããããããŸãã
101 ïœ 150 åç®
æåŸã® 50 åã¯ãäžçŽç·šã§åããŠç޹ä»ããã¢ã«ãŽãªãºã ã»ããŒã¿æ§é ã§è§£ããåé¡ãã»ãšãã©ã§ããåéå¥ã«ãŸãšããããŠããŸãã®ã§ãã¢ã«ãŽãªãºã ãå®å šã«ãã¹ã¿ãŒããããã«åœ¹ç«ãŠãŠãã ããã
åºæ¬åé¡ããå¿çšåé¡ãŸã§å¹ åºãåãäžããŠããŸããå¿çšåé¡ã®äžã«ã¯é£åãå«ãŸããã®ã§ã**é»è²ã³ãŒããŒãç®æã人㯠50 åäž 35 åæ£è§£ãç®å®ã«é 匵ã£ãŠãã ããã**50 åå šéšè§£ããããã»ãŒç¢ºå®ã«é»è²ã³ãŒããŒã¬ãã«ã®ã¢ã«ãŽãªãºã 掻çšèœåãã€ãããšãã£ãŠè¯ãã§ãããã
座æšå§çž®
101ãDSL_4_A - Union of Rectanglesãäºæ¬¡å
座æšå§çž®ã®åºæ¬åé¡ã§ãã
102ãABC 036 C - 座å§ãã座æšå§çž®ãšã¯äœãªã®ãããæããããåé¡ã§ãã
103ãJOI 2013 äºéž 5 - éã®çæ¯ç¯å²
104ãJOI 2008 æ¬éž 5 - ãã³ãã®è²
ååå šåæ
105ãDPL_4_B - Coin Combination Problem IIãåºæ¬åé¡ã§ãã
106ãAtCoder Beginner Contest 032 D - ãããã¶ãã¯åé¡ãã® 34 ç¹ã®éšåç¹
107ãCODE THANKS FESTIVAL 2017 G - Mixture Drug
108ãJOI 2015 äºéž 6 - 財å®ããšããããŒã¿æ§é ã䜿ãã®ã§ãããé£ããã§ãã
â» äžçŽç·šã§ 23 åç®ãšããŠç޹ä»ãã JOI 2008 æ¬éž 3 - ããŒã ãååå šåæã§ç°¡åã«è§£ããŸãã
è¡å环ä¹
109ãyukicoder No.526 - ãã£ããããæ°åã®ç¬¬Né
ãMã§å²ã£ãäœããæ±ãããåºæ¬åé¡ã§ãã
110ãAtCoder Beginner Contest 009 D - 挞ååŒããã£ã¬ã³ãžåé¡ã§ãã$O(N^{3}logMlogA)$ ãéã«åããªãã®ã§ãTLE ãã¡ãã£ãšå³ããã§ãã
ãããªã³ã°ïŒæé·å ±éç¥å [LCA] ãå«ãïŒ
111ãGRL_5_C - LCA: Lowest Common Ancestorãåºæ¬åé¡ã§ãã
112ãAtCoder Beginner Contest 014 D - éè·¯
113ãAtCoder Regular Contest 060 E - 髿©åãšããã«ãLCA ã§ã¯ãªãã§ããããããªã³ã°ã®çºæ³ã䜿ã£ãŠè§£ããŸãã
114ãJOI 2010 æ¬éž 5 - JOI åœã®ãç¥ãäºæ
ãè¶
é£åã®ãã£ã¬ã³ãžåé¡ã§ããæ©è²ã³ãŒããŒçžå¿ä»¥äžã®é£æåºŠããããŸãããæ¯éææŠããŠã¿ãŸãããã
Grundy æ°
115ãAtCoder Regular Contest 013 C - ç¬ãããšããããªïŒ
116ãAOJ 0401 - ç³éã³
117ãAtCoder Grand Contest 017 D - Game on TreeãAtCoder 1100 ç¹ã®ãã£ã¬ã³ãžåé¡ã§ããé»è²ïœæ©è²ã³ãŒããŒçžå¿ã®é£æåºŠããããŸãã
Rolling Hash
118ãALDS_14_B - æååæ€çŽ¢ãåºæ¬åé¡ã§ãã
119ãAtCoder Beginner Contest 141 E - Who Says a Pun?
120ãAtCoder Beginner Contest 135 F - Strings of Eternity
121ãAtCoder Beginner Contest 150 F - Xor Shiftãæååã§ã¯ãªãã§ãã Rolling Hash ã䜿ããåé¡ã§ããã¡ãªã¿ã«ãRolling Hash ã¯æååäžã ãã§ãªãé
åã«ãé©çšããããšãã§ããŸãã
å¹³æ¹åå²
122ãå šåœçµ±äžããã°ã©ãã³ã°çæ±ºå®æŠæ¬æŠ D - Deforestationããã±ããæ³ã䜿ã£ãŠã$O(N \sqrt{N})$ ã§è§£ãããšãã§ããŸãã
â» ã»ã°ã¡ã³ãæšã®ãšããã§ç޹ä»ããŸããã
ãšãã£ãåé¡ãå¹³æ¹åå²ã§è§£ãããšãã§ããŸãããã¡ãããã»ã°ã¡ã³ãæšã䜿ããšè§£ãããšãã§ããŸãããå¹³æ¹åå²ã§è§£ããŠã¿ãŠããããããããŸããã
æå€§æµïŒæå°ã«ãã
123ãGRL_6_A - Maximum Flowãåºæ¬åé¡ã§ãã
124ãAtCoder Beginner Contest 010 D - æµ®æ°äºé²ãæå°ã«ããåé¡ã«åž°çããããšãã§ããŸãã
125ãAtCoder Regular Contest 074 F - Lotus Leavesããã£ã¬ã³ãžåé¡ã2 åèå¯ã¹ããããå¿
èŠã§ãé£ããã§ãã
äºéšã°ã©ããæ±ãåé¡
126ãCODE FESTIVAL 2017 Qual B C - 3 Steps
äºéšãããã³ã°ãæ±ãåé¡
127ãGRL_7_A - Bipartite Matchingãåºæ¬åé¡ã§ãã
128ãAtCoder Beginner Contest 091 C - 2D Plane 2N Pointsã貪欲æ³ã§ãè§£ããŸãããäºéšãããã³ã°ã§ãæ¯éè§£ããŠã¿ãŠãã ããã
129ãAOJ 1163 - Cards
130ãSoundHound Inc. Programming Contest 2018 (æ¥) C - åºåããã³ãïŒäºéšã°ã©ãã®æå€§ç¬ç«éåã®ãµã€ãºã¯ãé ç¹æ°ããäºéšã°ã©ãã®æå€§ãããã³ã°ãåŒãããã®ã§ãã
131ãAtCoder Regular Contest 013 D - åãåãã§ããããªïŒããã£ã¬ã³ãžåé¡ã50 åã®äžã§æé£åã® 1 ã€ã§ãã
Binary Indexed Tree (BIT) ã䜿ãåé¡
132ãDSL_2_B - Range Sum Queryãåºæ¬åé¡ã§ãã
133ãDSL_2_D - Range Add Queryãåºæ¬åé¡ã§ãã
134ãALDS_5_D - å転æ°ãåºæ¬åé¡ã§ãã
135ãAOJ 0365 - æååã¹ã¯ãããå転æ°ãå°ãå¿çšãããåé¡ã§ãã
136ãAtCoder Regular Contest 033 C - ããŒã¿æ§é
137ãAtCoder Beginner Contest 136 F - Enclosed Points
138ãJOI 2011 æ¬éž 5 - 埮çç©å®éšããã£ã¬ã³ãžåé¡ã§ãã
Range Minimum Query (RMQ)
139ãDSL_2_A - Range Minimum Queryãåºæ¬åé¡ã§ãã
140ãAtCoder Grand Contest 004 B - Colorful Slimes
é å»¶è©äŸ¡ã»ã°ã¡ã³ãæš
141ãDSL_2_F - RMQ and RUQãåºæ¬åé¡ã§ãã
142ãDSL_2_H - RMQ and RAQãåºæ¬åé¡ã§ãã
143ãSquare869120Contest #2 H - Counting 1's
144ãJOI 2008 æ¥å宿 - Typhoon
145ãJOI 2012 æ¥å宿 - Fortune Telling
146ããã¿ããªã®ããã³ã³ã2017 äºéž D - å·¥å Ž
ãã®ä»ã®ãã¯ããã¯
èšç®å¹Ÿäœã®ã¢ã«ãŽãªãºã ã®ãã¡äžã€ããåè§ãœãŒããã«ãã£ãŠè§£ããåé¡ãã¡ã§ãã
147ãAtCoder Beginner Contest 033 D - äžè§åœ¢ã®åé¡
148ãAtCoder Beginner Contest 139 F - Engines
æççµè·¯ã¢ã«ãŽãªãºã ã®äžã€ããæ¡åŒµãã€ã¯ã¹ãã©æ³ãã«ãã£ãŠè§£ããåé¡ãã¡ã§ãã
149ãJOI 2017 äºéž 6 - ããã® JOI å
150ãããã¯ã¡ããã³ã³ãã¹ã Day2 G - éåŠè·¯
ãããå
šéšè§£ããããèªä¿¡ãã£ãŠãé»è²ã³ãŒããŒçžåœã®ã¢ã«ãŽãªãºã æ§ç¯èœåãšå®è£
åãããããšãã£ãŠããã§ããããšã¯ 3-2-3. ç¯ ã§è¿°ã¹ãããã«ãTopCoder ã® SRM ãè§£ããŠæ°åŠçèå¯åãäžããã°ããã£ãšé»è²ã³ãŒããŒã«ãªããã§ãããã
3-4. ãç«¶ããå žå 90 åãã®ãããïŒ2021/7/12 远èšïŒ
ãããŸã§ãäžçŽç·šãšäžçŽç·šã§ã¯ã以äžã®åé¡éã玹ä»ããŸããã
- 2-3. ç¯ïœåéå¥ãåäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 å
- 3-3. ç¯ïœåéå¥ãäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 + 50 å
ããããããã«ã¯ãéå»åã§ããããè§£èª¬ãæŽåãããŠããªãåé¡ãããããªã©ã®ãã¡ãªããããããŸãããŸããAtCoder ã§ã¯ã¢ã«ãŽãªãºã ã»èå¯ãã¯ããã¯ã®äž¡æ¹ãéèŠã§ããã«ãé¢ããããåŸè ã察çã§ããåé¡ã 10 åçšåºŠããåé²ãããŠããããã¢ã«ãŽãªãºã ã«ããªãã®éç¹ã眮ããŠããŸãã
ãã®ãããªæ¬ ç¹ãè§£æ¶ããããšæãã2021 幎ã«å ¥ã
ãšããæ°ããªææãçãŸããå幎 7/11 ã«å®æããŸãããïŒãããç§ãäœæããææã§ãïŒ
ç«¶ããäžçŽè ãç®æãããã«å¿ èŠãªåé¡ã 90 åéãŸã£ãŠããã»ããåé¡ã®ã¬ãã«ã¯ AtCoder Beginner Contest ã® C ïœ F åé¡ãšå¹ åºããé£æåºŠå¥ã«åããããŠããŸãããããã£ãŠããç°¡åãªåé¡ã®åŸ©ç¿ããå žåç¥èã®ç¿åŸãã®äž¡æ¹ã®çšéã«äœ¿ããŸãã
ãŸããäžå³ã®ããã«ããŒã¯ãŒããæžããã解説ããããèŠç¹ãæŽçããããã§ãããããŠãèªåã®ããã°ã©ã ãæ£ãããã©ããã確èªã§ããããžã£ããžã·ã¹ãã ãã AtCoder ã«çšæãããŠãããããå¹çããç·Žç¿ãè¡ãããšãã§ããŸãã

ç¹ã«ãã¬ãŒãã£ã³ã°ã 400ïŒè¶è²ïŒïœ2299ïŒé»è²äžäœïŒ ã®åå è
ã«ã¯ãå§ãã§ããŸãããã®ææã«ã€ããŠè©³ããç¥ãããæ¹ã¯ã
ãã芧ãã ããã
3-5. ãé»è²ã³ãŒããŒããç®æã人ã®ããã® Tips 4 å
3 ç« ã®æåŸã«ãé»è²ã³ãŒããŒãç®æãçããã«ãšã£ãŠäŸ¿å©ãªæ å ±ãããã€ã玹ä»ããããšæããŸãã
3-5-1. æµ·å€ã³ã³ãã¹ããµã€ãã®ããã
çããã¯ãAtCoder ãšããã³ã³ãã¹ããµã€ãã§ç«¶ããããã£ãŠãããšæããŸããããããAtCoder ã§ã¯é±ã« 1 åããã³ã³ãã¹ãããããŸããããããããšã
ãå®åãäžããããã«ãã£ãšã³ã³ãã¹ãã«åºããïŒã
ãšæã人ããããšèããããŸããããã§ãå§ããªã®ã¯ããæµ·å€ã®ã³ã³ãã¹ãã«åå ããããšããææ®µã§ãããã®äžã§ãæããããããã®ã¯ããã·ã¢ã®
ãšããã³ã³ãã¹ããµã€ãã§ãã
CodeForces ã®å©ç¹
é±ã« 2, 3 åãã³ã³ãã¹ãããã£ãŠãããã®ã§ãã³ã³ãã¹ãã«åºãã人ã«ãšã£ãŠã¯ãåŸã§ããäŸãã° 2020/2/9 ïœ 2/18 ã®å
ã 10 æ¥éã§ 5 åãã³ã³ãã¹ããéå¬ãããŠããŸãã

CodeForces ã®æ¬ ç¹ãšããã®è§£æ±ºæ³
- éå§æå»ã 24 ïœ 26 æãšãã«ãªãããšãå€ããå€ãé
ãããšã§ãã
- æµ·å€ã®ã³ã³ãã¹ããªã®ã§ãæå·®ã®é¢ä¿ã§æ¥æ¬ã§ã¯æ·±å€éå¬ã«ãªã£ãŠããŸããŸãã
- ãã ããæ¯åããããšããèš³ã§ã¯ãªããé嬿å»ãæ©ãåå ã§ããã³ã³ãã¹ãããããŸãã
- åºããªãã£ãã³ã³ãã¹ãã®åé¡ã¯ãéå»åãšããŠïŒãããã¯ããŒãã£ã«åå ã§ïŒè§£ãã°ããã§ãã
- å顿ãè±èªã§ããããšã§ãã
- ãããè±èªã¯å¿ èŠã«ãªãã®ã§ãå°ãªããšãç«¶ããã®å顿ãèªããããããŸã§ã®ã¬ãã«ãŸã§ã¯ãè±èªãå匷ããããšããå§ãããŸãã
3-5-2. ç«¶ããäœåã®ããã
æ¥æ¬ã«ã¯ãAtCoder ã ãã§ã¯ãªããyukicoder ãšããæ¯èŒçãããµããªã³ã³ãã¹ããµã€ãããããŸããyukicoder ã®æå€§ã®ç¹åŸŽãšããŠæããããã®ã¯ãã¬ãŒã垯ã«é¢ããããã ãã§ãäœåãããããšãã§ããããšã§ãã
äœæ ç«¶ããäœåã¯è¯ãã®ã§ããããããã®çç±ã¯ 2 ã€ãããŸãã
- èªãåé¡ãäœã£ãŠã¿ãããšã§ãã¢ã«ãŽãªãºã ãžã®çè§£ãæ·±ãŸããããäœåè ã®æå³ãæããããšãã§ããããããã¯å®åã®åäžã«ã€ãªããã
- ãäœåããšããæ°ããããšããã£ãŠã¿ãããšã§ãç«¶ããã®ã¢ãããŒã·ã§ã³ç¶æã«ã€ãªããã
ããŠãã©ã®ããã«ããŠäœåãããã°è¯ãã®ã§ãããããyukicoder ã AtCoder éå ¬åŒã³ã³ãã¹ããªã©ã§äœåãããæ¹æ³ã»ãã¯ããã¯ã¯ã以äžã®èšäºã«ãŸãšãŸã£ãŠããŸãã
ãšããèš³ã§ãããå®ãããã°ãçãããäžåºŠç«¶ããäœåããã£ãŠã¿ãŸãããã
3-5-3. éå»åã¯äœåã§è§£èª¬ãèŠãã°è¯ãã®ãïŒ
ããŠãéå»åãè§£ããŠããããè§£æ³ãå šç¶åãããªããšãããã€ã«ãªã£ãã解説ãèªãã°é©åãªã®ãããããªã人ãå€ããšæããŸããããã§ãçµéšåããã®å€§äœã®ç®å®ãæç€ºããŠãããŸãã
| 100 ç¹ | 200 ç¹ | 300 ç¹ | 400 ç¹ | 500 ç¹ | 600 ç¹ | 700 ç¹ | 800 ç¹ | 900 ç¹ | |
|---|---|---|---|---|---|---|---|---|---|
| æ°Žè²ã³ãŒã㌠| 3 å | 4 å | 10 å | 25 å | 45 å | 90 å | 120 å | ||
| éè²ã³ãŒã㌠| 2 å | 3 å | 6 å | 20 å | 40 å | 80 å | 100 å | 120 å | |
| é»è²ã³ãŒã㌠| 1 å | 2 å | 4 å | 15 å | 35 å | 60 å | 80 å | 100 å | 120 å |
| æ©è²ã³ãŒã㌠| 15 ç§ | 1 å | 3 å | 10 å | 30 å | 45 å | 60 å | 80 å | 110 å |
| æ¯èŒçç°¡åãªåé¡ã«ãé¢ãããè§£æ³ãããããªãå Žåããå žåç¥èãå žåãã¯ããã¯ãç¥ããªãããè§£ããªãã£ãããšããå¯èœæ§ããšãŠãé«ãã§ãããã®ãããæ©ãã«è§£èª¬ãèŠãããšãããããããŸãã(2/20 00:47 PM. 远èš) |
â» è¶è²ã³ãŒããŒã»ç·ã³ãŒããŒã®å Žåã¯ãã¡ããåç
§ã
â» çããã®ã«ããã£ãæéã§ã¯ãªããè§£æ³ãåãããªãã£ãæéã§ãã
3-5-4. ã©ã€ãã©ãªæŽåã®ããã
çããã®äžã«ãããããèããæã£ãŠãã人ã¯ããŸããã
äŸãã°ã»ã°ã¡ã³ãæšãšã RMQ ãšã BIT ãšã UnionFind ãšãããã¡ãã¡æžããŠãããšæéãããã£ãŠé¢åãªã®ã§ã¯ãªããããããã©ãã«ãããŠç¯çŽã§ããªããã
ãã®åé¡ã解決ããææ®µã®äžã€ãã©ã€ãã©ãªæŽåã§ããäºãåçš®ã¢ã«ãŽãªãºã ã®å®è£
ãœãŒã¹ã³ãŒããäœã£ãŠãããã³ã³ãã¹ãæã«ã¯ãã®ãœãŒã¹ã³ãŒãã貌ãä»ããã ãã«ããããšããææ³ã§ããïŒä»¥äžãã©ã€ãã©ãªæŽåã®äŸã§ããã»ã°ã¡ã³ãæšã幟äœã©ã€ãã©ãªãªã©ãæŽåããŠããŸããïŒ

â» AtCoder ã§ã¯ã©ã€ãã©ãªã䜿ããŸãããäžé«çãåºå Žã§ãã倧äŒã®äžã€ãæ¥æ¬æ
å ±ãªãªã³ããã¯ãã®æ¬éžã»æ¥å宿æ¬çªã§ã¯ã©ã€ãã©ãªã䜿ããªãããšã«ã泚æãã ããã
4. ãæ©è²ã³ãŒããŒãã«ãªãããã«ã¯äœãããã°è¯ãã®ã
3 ç« ã§ã¯ãé»è²ã³ãŒããŒã«å°éã«ã¯äœãèŠæ±ãããã®ããå°éãããŸã§ã®ç·Žç¿æ¹æ³ãæèãã¹ããã€ã³ããªã©ã«ã€ããŠèšããŸããã
æ¬ç« ã§ã¯ãé»è²ã³ãŒããŒãããäžåäžã®ã©ã³ã¯ã§ããæ©è²ã³ãŒããŒã«äžããããã«ã¯ãäœãããã°è¯ãã®ããèšããŸãã
é»è²ãšæ©è²ã®å·®ã¯ãæŒç¿éã
é»è²ã³ãŒããŒããæ©è²ã³ãŒããŒã«ãããŠãåŠã¶ã¹ãã¢ã«ãŽãªãºã ã¯ããã»ã©å¢ããŸããã
äžæ¹ã§ãã¬ãŒãã£ã³ã°ã 2000 以äžãšãªããš AtCoder Beginner Contest ã«ãããã¬ãŒãã£ã³ã°ã®å€åãç¡ããªããªã©ãšãã£ãçç±ã§ãã¬ãŒãã£ã³ã°ãäžããããã«è§£ãã¹ãåé¡ã®ããªãšãŒã·ã§ã³ãäžæ°ã«å¢ããŸãããã®ãããæŒç¿éã倧åã«ãªã£ãŠããŸããå®éã«ãmencotton ããã®ãã€ãŒã ã«ãããšã以äžã®çµ±èšæ å ±ãæããã«ãªã£ãŠããŸããïŒ2020/01/17 æç¹ã®çµ±èšã§ãïŒ
| æ¡ä»¶ | 60% ã©ã€ã³ | 90% ã©ã€ã³ |
|---|---|---|
| é»è²ã³ãŒããŒéæ | 1510 å AC | 1880 å AC |
| æ©è²ã³ãŒããŒéæ | 1910 å AC | 2200 å AC |
ã€ãŸããé»è²ã³ãŒããŒéæããæ©è²ã³ãŒããŒéæãŸã§ãããã 400 åè§£ãå¿
èŠããã£ãã±ãŒã¹ãå€ãããšããããšãåãããŸãã

ããããéèŠãªã®ã¯è§£ãåé¡ã®æ°ã ãã§ã¯ãããŸãããæ©ã³ãŒããŒã«ãªããšã
- ãæ©è§£ãåãããã ãã§ãªã
- é£ããåé¡ãè§£ãå
ãéèŠã«ãªã£ãŠããã®ã§ãããã®é£åãã³ã³ãã¹ãæéãã£ã±ã䜿ã£ãŠè§£ããããã«ãªãããã«ã¯ãã©ã®ãããªç·Žç¿ãããã°è¯ãã®ã§ããããã
é£åãæéãããŠè§£ãç·Žç¿ãéèŠ
é£ããåé¡ãã³ã³ãã¹ãã§è§£ããããã«ãªãããã«ã¯ã
- AtCoder Problemsãã«ãããæ©åŸåçžå¿ïŒ2600+ïŒïœèµ€è²ã³ãŒããŒçžå¿ã®é£æåºŠããæéãããŠè§£ã
ããšãç·Žç¿ãšããŠè¯ããšæããŸãã3
æå㯠1 ååœãã 2 æéãããããã£ããã2 æéãã£ãŠãè§£ããªãããšããããšæããŸããããã¯é«é£æåºŠåž¯ã®èå¯ããã£ãããšããªãã®ã§åœç¶ã§ããããããé£åã 50 åãããè§£ããŠãããã¡ã«ãæ°åã« 1 åã®å²åã§è§£ããããã«ãªã£ãŠãããŸãã
æ©åŸåçžå¿ã®é£æåºŠã®åé¡ã 1 æé以å ã§è§£ãã確çã 2-3 å²ã«ãªããšãæ©è²ã³ãŒããŒã®å®åãä»ãããšãããã§ãããã
é£åãè§£ãã«ããã£ãŠéèŠãªããš
æåŸã«ãé£åãè§£ãã«ããã£ãŠéèŠãªããšãããã€ã玹ä»ããŸãã
1 ç¹ç®
解説ã¯èŠãªãããšããå§ãããŸãã
ãã®ãããã®é£æåºŠã«ãªã£ãŠãããšãããããèããåã ããèå¯åãä»ãããã§ãããŸãããã©ããªæãã§è§£æ³ãèŠããã®ãããšããã®ãåããã°åŸ©ç¿ãªã©ã«åœ¹ç«ãŠãããšãã§ããŸãããããã¯èªåã§è§£ãããšãã«ããããããŸããããã®ç¹ã§ããèªåã§è§£ãããšã¯å€§åã§ãã
2 ç¹ç®
ããŠãã©ã®ã¿ã€ãã³ã°ã§åé¡ãè§£ãã®ã諊ããã°è¯ãã®ã§ããããã
è§£æ³ãèããæéã ãã§ 120 åçšåºŠäœ¿ã£ãŠãè§£æ³ãåãããªãã£ãå Žåã¯ããã®åé¡ã諊ããŠå¥ã®åé¡ãè§£ãããšããå§ãããŸãããªãã2 é±éïœæ°ã«æãããçµã£ãŠããã以å諊ããåé¡ã«åææŠããã®ã¯ãšãŠãè¯ãæ¹æ³ã§ãããããè§£ãããšãã®éææã¯ãšãŠã倧ãããã¢ãããŒã·ã§ã³ã®ç¶æã«ãã€ãªãããŸãã
3 ç¹ç®
éå»åãè§£ããšãã«ãéäžãããšããšéäžããªããšãã§ã¯å¹çãå
šç¶éããŸãã
äžæ¹ãé£åãè§£ãããã«ã¯ 2 æéã 3 æéãªã©é·ãæéã䜿ãå¿
èŠãããããšãå€ãã§ãããã®ãããéäžåãåããããã§ããéäžåãç¶æããäžã€ã®ææ®µãšããŠã¯ãã¿ã€ããŒã§æéãæž¬ããšè¯ãã§ããé£åãè§£ãç·Žç¿ã«ã¯ãããã»ã©æ©è§£ãåã¯å¿
èŠãªãã§ãããéäžåã®ç¶æãšããå¥ã®ç®çã§ã¿ã€ããŒãæå¹ã ãšèããããŸãã
5. ãæ©è²ã³ãŒããŒãã®å ãïœã¬ãã³ã³ç«¶æãšããŠã®ç«¶ããã®ã¯ããŸãïœ
æ¥æ¬ã§æ©è²ã³ãŒããŒä»¥äžã®åå è
ã¯ãå
ã 104 人ããããŸããã4

ãããããã®ãããªäººã«ããèŠãããªãæ¯è²ãããã®ã§ããããã¯ããã¬ãã³ã³ç«¶æãšããŠã®ç«¶ãããããã匷ãæãå§ãããšããããšã§ããæ©è²ã³ãŒããŒä»¥äžã®åŒ·ã人ã¯ã
- äŒæ¥ã³ã³ãã¹ãã®æ¬æŠã«è¡ãããšãã§ããæ©äŒãå€ã
- åœéæ å ±ãªãªã³ãã㯠(IOI) ã ACMåœé倧åŠå¯Ÿæããã°ã©ãã³ã°ã³ã³ãã¹ãã®äžç倧äŒãèŠæ®ãå§ãã
ãšãã£ãæãã«ãªããäžæ°ã«ãç«¶æããã£ãŠãæããå¢ããŸãã
äŸãã°ãäŒæ¥ã³ã³ãã¹ãæ¬æŠã®å Žåãäºéžãåã¡æããåå è ã¯çŸå°äŒå Žã«éãŸã£ãŠãåãéšå±ã§ã³ãŒãã£ã³ã°ãããŸãã第äžåæ¥æ¬æåŒ·ããã°ã©ããŒåŠçéžææš©æ±ºåã®å Žåã200 人ãå€§äŒæ¬çªã®ç·åŒµããé°å²æ°ã®äžã³ãŒãã£ã³ã°ãããã®ã§ãããããè³éãããã£ãŠãããå šåœçµ±äžããã°ã©ãã³ã°çæ±ºå®æŠã®å Žåãåªåè³é㯠50 äžåãšéåžžã«é«é¡ã§ãã
ãã®ããã«ãæ©è²ã³ãŒããŒä»¥äžãç¹ã«ã¬ããã³ãŒããŒã«ãªããšãã¬ãã³ã³ç«¶æãšããŠã®ããããŠã¹ããŒããšããŠã®æ°ããç«¶ããã®äžçãèŠãå§ããã®ã§ãã
ç®æãã¬ããã³ãŒããŒïŒ
6. ãããã«
ç«¶æããã°ã©ãã³ã°ã®äžçã¯ãšãŠãåºãã§ããã ãããããæ¥œããåŽé¢ãããã°ãå®åãããç°¡åã«äžãããªããšããå³ããåŽé¢ããããŸãããã®åãç«¶ããã§äžéããã®ã¯ãšãŠãå¬ããããšã§ãã
æåŸã«ãæ¬èšäºãäžäººã§ãå€ãã®ãç«¶ããã§äžéãããããšæã£ãŠãã AtCoder åå è ã®åœ¹ã«ç«ã€ããšãã§ããã°ããšãŠãå¬ããæ°æã¡ã§ããèšäºãæåŸãŸã§ãèªã¿ããã ããããããšãããããŸããïŒ
è¬èŸ
ä»åã¯ãç«¶æããã°ã©ãã³ã°ã§äžéããããã®ã¬ã€ãã©ã€ã³ãæžããŠã¿ããšãã詊ã¿ãããŸãããããã¯ãããããå°ãªããšãç§ã調ã¹ãäžã§ã¯åããŠã®è©Šã¿ã§ãã
ãããªäžãæ¬èšäºãå·çããã«ããããããããã®æ¹ã ã«æ¯ããŠããã ããŸãããä»ã®çŽ æŽããã AtCoder ãæäŸããŠãã ãã£ã chokudai ãããåçš®ã¢ã«ãŽãªãºã ã®èšäºãåŒçšãããŠããã ãã drken ãããiwiwi ãããsatanic0258 ãããganariya ãããKutimoti ãããhamayanhamayan ãããageprocpp ãããmickey24 ãããimos ãããmaskot1977 ãããofutonfuton ãããpython_walker ãããbaitop ãããPocala ãããcinnamo-coder ãããYang33-kassa ãããprd-xxx ãããtsutaj ãããpokutuna ãããéå»åç²Ÿéž 150 åããããã®çŽ æµãªåé¡ãæäŸããŠãã ãã£ãæ¹ã ãèªãã§ãã ãã£ãèªè ã®çããããããŠç«¶æããã°ã©ãã³ã°ã«é¢ãããã¹ãŠã®æ¹ã ã«æè¬ç³ãäžããŸããæ¬åœã«ããããšãããããŸããã
-
2020 幎 8 æ 3 æ¥æç¹ã â©
-
ãœãŒã¹ã¯ 0214sh7 ããã®ãã€ãŒãã§ãããã®çµ±èšè³æã¯ 2019 幎 12 æ 9 æ¥ã«ç§ïŒE869120ïŒã調æ»ãããã®ã§ãããããã§ã¯ãã®çµ±èšè³æãå šäœã«åºãã 0214sh7 ããã®ãã€ãŒããåŒçšããŠããŸããïŒ2/20 08:11 PM. 远èšïŒ â©
-
ç§ãæ©è²ã³ãŒããŒããèµ€è²ã³ãŒããŒã«ãªãããã«äœ¿ã£ãç·Žç¿æ¹æ³ã§ãããæ©è²ã³ãŒããŒã«ããé«ã確çã§ãªãããå Žåãé»è²ã³ãŒããŒã®æç¹ã§ãã®ç·Žç¿æ¹æ³ã䜿ãããšãããããã§ãã â©
-
2020 幎 8 æ 3 æ¥æç¹ã â©

