![](https://habrastorage.org/web/056/8bf/a61/0568bfa6111b405e93d68d9ca8badf20.png)
DataArtã¯é·å¹Žã«ãããITMOã¹ããŒãããã°ã©ãã³ã°ããŒã ãšã®å奜é¢ä¿ãç¯ããæ¯æŽããŠããŸãã ãã®å€ãã€ãªã€ã»ãºãã³ãã€ã¯ã³ã»ããããŽãããŠã©ãžããŒã«ã»ã¹ãã«ããããµã³ã¯ãããã«ãã«ã¯ã®éçºã»ã³ã¿ãŒã蚪ããŸããã 2017幎ã®äžçãã£ã³ããªã³ã¯ãããã°ã©ããŒãäºãã«ã©ã®ããã«ç«¶äºãããããã¬ãŒãã³ã°ãã£ã³ãããæ°ã«å ¥ãã®ã¿ã¹ã¯ãæ匷ã®ã©ã€ãã«ã«ã€ããŠè©±ããŸããã
ããã°ã©ãã³ã°ãªãªã³ããã¯
ããã°ã©ããŒã®äž»ãªç«¶äº-ACMïŒACM-ICPCããŸãã¯åã«ICPCïŒã®åŸæŽã®äžã§ã®çåŠçãªãªã³ããã¯ã¯ã1970幎代ããéå¬ããã1989幎ã«ä»æ¥ã«è¿ã圢ã§æç«ããŸããã ãªãªã³ãã¢ãŒãã¯ããŸããªäŸå€ãé€ããŠãåŠçãšå€§åŠé¢çã察象ãšããŠããŸãã24æ³ä»¥äžã®ããã°ã©ããŒã¯ç«¶äºã§ããŸããã ããã«ãæçµãã¹ãã§ã¯2åããèªåã®åŒ·ãããã¹ãã§ãããå°åéžæã«ã¯5åããåå ã§ããŸããã æ°åã®ããŒã ãäžçäžã®åæ段éã§ç«¶äºããŠããŸãã çŽ100人ããã¡ã€ãã«ã«å°éããŸãã
åºæ¬çãªã«ãŒã«
ããŒã ã¯3人ã§æ§æãããŸãããåããŒã ãèªç±ã«äœ¿çšã§ããã®ã¯1å°ã®ã³ã³ãã¥ãŒã¿ãŒã®ã¿ã§ãã ã³ã³ãã¹ãã®éå§åã«ã5ã8æéã§è§£æ±ºããå¿ èŠããã8ã13åã®ã¢ã«ãŽãªãºã çãŸãã¯æ°åŠçãªåé¡ã®ããå°çãå šå¡ã«é åžãããŸãã ãã®åé¡ã®è§£æ±ºçã¯ãããã¹ãèŠæ±ãèªã¿åããããã¹ãå¿çãçæããããã°ã©ã ã§ãã ãã¹ãããããã«ããœãªã¥ãŒã·ã§ã³ã¯äºåã«ju審å¡ã«ãã£ãŠæºåãããçŽ100ã®ãã¹ãã§å®è¡ãããŸããåãã¹ãã§çããæ£ããå Žåã«ã®ã¿ãçã§ãããšèªèãããŸãã
ICPCã®ã«ãŒã«ã¯ããŠã©ã«ããã°ã©ãã³ã°ãã£ã³ããªã³ã·ããçšã«å ¬éããããããªã«éåžžã«æ確ã«èšèŒãããŠããŸããããã¯ããªãªã³ããã¯ã®äž»èŠãªéžæ段éã®1ã€ã§ãã ãããã¯ãã¹ãŠã®å°åã§åãã§ããã2013幎以éã¯å€æŽãããŠããŸããã
èšèªãšç°å¢
2017幎ã®æåŸã«ã¯ãJavaãC ++ãPythonã®èšèªã䜿çšã§ããŸãã ãã ããPythonãååãšããŠéåžžã«é«éã§ã¯ãªãããšã¯æããã§ãã審æ»å¡ã¯ãã¿ã¹ã¯ãåŒãæž¡ãããšãã§ããããšãä¿èšŒããŸããã§ããã ãã ãããããã®èšèªã§æžããããœãªã¥ãŒã·ã§ã³ããã¹ãŠã®ãã¹ãã«åæ Œããããšã¯ä¿èšŒãããŠããŸããã
ç°ãªã競æäŒã§ã¯ãèšèªã®ã»ãããç°ãªãå ŽåããããŸãã ããšãã°ãçŽ20ã®èšèªãCodeforcesãªã³ã©ã€ã³ãã©ãããã©ãŒã ã§èš±å¯ãããŠããŸãïŒC ++ããã³JavaããHaskellããã³PerlãŸã§ã
決åæŠã®ã»ãšãã©ã®ããŒã ã¯ãé床ãåé¢ã«åºãŠãããããC ++ã§èšè¿°ããŸãã éçºç°å¢ãšããŠãå€ãã®ããŒã ãVIMïŒããšãã°ãIvanãšIlyaãåããïŒãŸãã¯GinaïŒVladimirãåããïŒã䜿çšããŸãã ãŸã Javaã§æžã人ã¯ãéåžžãEclipseã®ãããªç°å¢ã䜿çšããŸããããã¯ããªãŒãã³ã³ããªãŒããªãã§Javaã§æžãã®ãã¯ããã«é£ããããã§ãã
決åæŠã¯çŸåšJetBrainsãã¹ãã³ãµãŒãšãªã£ãŠãããããè¿ãå°æ¥å€æŽãäºæ³ãããŸãïŒ2017幎5ææ«ãŸã§ã®20幎éãIBMã¯ICPCã®ã¹ãã³ãµãŒã§ããïŒã ããã¯ãã¹ãã³ãµãŒè£œåã衚瀺ãããããšãæå³ããŸãïŒIDEA for Javaããã³CLion for C ++ã ãããããã®åŸãããŒã ã¯ãããã¬ãŒãåºã䜿çšãå§ããŸãããçŸæç¹ã§ã¯ãããé »ç¹ã«ãããã¬ãŒãªãã§äœ¿çšã§ããŸãã
ã¿ã¹ã¯ã®é²å
2000幎代åé ã«ã¯ããã«ãŒããã©ãŒã¹ã¿ã¹ã¯ã«ããããªå¶éããããŸããããããŒã¿æ§é ã«ã¯ããã«å€ãã®ã¿ã¹ã¯ããããŸãã åæã«ãäžçã«ã¯ã¹ããŒãããã°ã©ãã³ã°ã®ããã®ãŸã£ããå¥ã®åŠæ ¡ãããã€ããããŸããããŒã©ã³ãã§ã¯ãã€ããªãã®ãŒãå€ãã®å Žåãæ°åŠçãªã¿ã¹ã¯ã奜ããªå Žåãäžåœã§ã¯ãè€éãªæè¡çãªãã®ã奜ã¿ãŸããããšãã°ãçµã¿åããè«ãæ€èšãããªã©ãå€ãã®ã³ãŒããæžãå¿ èŠããããŸã
ç®æšã¯åžžã«ãè¿ éã«æ©èœãããœãªã¥ãŒã·ã§ã³ãèãåºããå®è£ ããããšã§ãã ããšãã°ãèãããããã¹ãŠã®ãªãã·ã§ã³ãåçŽã«å®è¡ããããã°ã©ã ãäœæããããšã§ãå°ãªããšãäœããã®åœ¢ã§åé¡ã解決ã§ããŸãã ããããæè¿ã§ã¯ããã«ãŒããã©ãŒã¹ã®äœæã«é¢é£ããã¿ã¹ã¯ã¯ã»ãšãã©çºçããŸããã
æéãšã¡ã¢ãªã«ã¯å¶éããããŸãããå®éã«ã¯ããœãªã¥ãŒã·ã§ã³ã䜿çšããã¡ã¢ãªãå€ããããšããåé¡ã¯ãŸãã«ããçºçããŸããã åãã¹ãã®å¶éæéã¯ãã¿ã¹ã¯ã«å¿ããŠéåžž1ã3ç§ã§ãããããæ¡ä»¶ã§ç€ºãããŸãã
ã¿ã¹ã¯ã®äŸ
ã¿ã¹ã¯ã¯ç°ãªããŸããã°ã©ããç·ããžãªã¡ããªãªã©ã§ããå°å³äžã®éœåžéã®æççµè·¯ãèšç®ãããšããŸãã ãŸãã¯ã島ã«å¯èœãªéãæé·ã®æ»èµ°è·¯ã建èšããéåžå€è§åœ¢ã®åœ¢ã§æ瀺ããŸãã ã¿ã¹ã¯ã¯ããã¹ããæ¯èŒããããšã§ã-æååã®ãã¢ã®æ倧ã®å ±ééšåæååãèŠã€ããŸãã
![](https://habrastorage.org/web/f3b/540/2a5/f3b5402a53f34b74858a1567783f0ea2.jpg)
ãã1ã€ã®åœ¢åŒã¯ãtasks審å¡ã«ãã£ãŠæžãããã·ã¹ãã ã§ã²ãŒã ããã¬ã€ããããã®å¯Ÿè©±åã¿ã¹ã¯ã§ãã æºæ±ºåã®1ã€ã§ã¯ãtic-tac-toeã§ææ¡ãããã¢ã«ãŽãªãºã ã90ïŒ ã®æéã§ç Žãããšãã§ããããã°ã©ã ãäœæããå¿ èŠããããŸããã æåŸãå«ãéå»ã®æ±ºåããã®ã¿ã¹ã¯ã¯ã ããã§èŠãããšãã§ããŸã ã
決å®ããã»ã¹
åºæ¬çã«ãããŒã ã¡ã³ããŒã¯ãå人ã®å¥œã¿ã«å¿ããæ¡ä»¶ã§ã·ãŒããæŽçããŸãã誰ããã©ã€ã³äžã®ã¿ã¹ã¯ã奜ã¿ããžãªã¡ããªäžã®èª°ãã奜ãã§ãã äžè¬çã«ãããã§ã®åã ã®äœæ¥ã¯ããŒã ã«åªå ããŸãã
ãŸããåé¡ã®1ã€ã解決ããããã®ã¢ã«ãŽãªãºã ãèãåºãå¿ èŠããããŸãã ãœãªã¥ãŒã·ã§ã³ã®äœæè ãããŒã ãšè©±ãåãããœãªã¥ãŒã·ã§ã³ãæ°åŠçã«æ£ããããšã確èªããå ŽåããããŸãã ãã®åŸãèè ã¯ã³ãŒããæžãããã«åº§ããŸã-çŸæç¹ã§ä»ã®2人ã®åå è ã¯ãä»ã®åé¡ã®è§£æ±ºçã«ã€ããŠèãç¶ããŠããŸãã ã³ãŒããäœæããããšãéåžžã¯æ¡ä»¶ã«æ·»ä»ãããŠãããã¹ãã±ãŒã¹ã§ãã§ãã¯ããè©äŸ¡ã®ããã«ã·ã¹ãã ã«éä¿¡ã§ããŸãã ã³ã³ãã¥ãŒã¿ãŒã®æéã¯éãããŠããããïŒåå è ã¯ã³ã³ãã¥ãŒã¿ãŒã1å°ããæã£ãŠããªãããšãæãåºããŠãã ããïŒãããªã³ã¿ãŒã¯åžžã«ç«¶æäŒã«åå ããŠããŸãïŒãœãªã¥ãŒã·ã§ã³ãæ©èœããªãå Žåã誰ãïŒéåžžã¯ãã®äœè ïŒãã³ãŒããçŽã«å°å·ããŠãšã©ãŒãæ¢ããŠããŸãã
ã³ãŒãæ©èœ
äžæ¹ã§ã¯ãã¹ããŒãããã°ã©ãã³ã°ã«æºãã人ã ã¯ãã¹ãã¬ã¹ã®å€ãæ¡ä»¶äžã§ãè¿ éãã€æ確ã«ã³ãŒããæžãããšãã§ããŸãã äžæ¹ã圌ãã¯ãã®ã³ãŒãããããŸããªå€æ°ãå«ãã§ãããèªã¿ã«ãããšããäºå®ã«ã€ããŠãã°ãã°æ¹å€ãããŸãã ã³ã³ãã¹ãã§æžãããã³ãŒãã«ã¯ãé·ããŠç解ããããå€æ°åã¯å®éã«ã¯ãããŸãããçµå±ã1幎ã§ãµããŒããããå¿ èŠã¯ãããŸããã ãã ããé«ã¬ãã«ã§ã¯ããã®åé¡ã¯ããã»ã©æ·±å»ã§ã¯ãããŸãããããŒã ã¡ã€ãã«ã¯ã³ãŒãããŸã æ確ã§ããå¿ èŠãããããã§ãã
ã¹ããŒãããã°ã©ãã³ã°ã®ãã1ã€ã®ç¹åŸŽã¯ãã¡ã¢ãªã·ã¹ãã ããã¹ãã·ã¹ãã ã«ãã£ãŠè©äŸ¡ãããªãããšã§ãããã®ãœãªã¥ãŒã·ã§ã³ã¯æ°ç§éããæ©èœããŸããã
ã¢ã«ãŽãªãºã
ç§ãã¡ã¯éåžžã«å€ãã®ã¢ã«ãŽãªãºã ãç¥ã£ãŠãããã»ã°ã¡ã³ãã®ããªãŒããã§ã³ãŠã£ãã¯ããªãŒããã«ã«ãããªãŒãªã©ã®ç°ãªãããŒã¿æ§é ã䜿çšããŸããæã«ã¯ããã©ã³ã¹ã®ãšããæ€çŽ¢ããªãŒãèªåã§èšè¿°ããåé¡ã®ç¶æ ã«ãã£ãŠæ±ºå®ãããæ å ±ãèªã¿åãããã«äžŠè¡ããŠä¿®æ£ããå¿ èŠããããŸãã ããšãã°ãC ++ã«ã¯ãå€æ°ã®æ°å€ããµããŒãã§ããéåæ§é ããããããšãã°æ¬¡ã®ãããªãã®ããããŸãã ãã ããã¿ã¹ã¯ã§ã¯ã次ã®æ°å€ã§ã¯ãªããæå®ãããæ°å€ä»¥äžã®ãã¹ãŠã®æ°å€ã®åèšãèŠã€ããå¿ èŠããããŸãã æšæºæ§é ã§ã¯ããŸããããŸããã
ã³ãŒãã®æçãæã¡èŸŒãããšã¯ã§ããŸããããã¯ãŒã«ãã«ããã§ã¯ãããããããŒã ãªãã¡ã¬ã³ã¹ãã€ãŸãçŽã«å°å·ãããã¢ã«ãŽãªãºã ã®ã»ããã䜿çšã§ããŸãã ãã®å Žã§ããããæžãããšãã§ããŸãããä»å¹Žã¯ãããæºåããã®ã«å€ãã®æéãè²»ãããŸãã-ããè€éãªã¢ã«ãŽãªãºã ããã¹ãããŸããã ããããçµå±ãé²é³ã¯ãŸã£ãã䜿çšãããŸããã§ããã
ã³ãŒãã®éã¯æçµè©ç¹ã«çŽæ¥åœ±é¿ããŸãããå²ãåœãŠãããæéå ã«1000è¡ãæžãã®ãé£ããããšããŸãå¥ã®åé¡ã§ãã ãããŠãçŸããç°¡æœãªãœãªã¥ãŒã·ã§ã³ãæãã€ããããããã10ã15å以å ã«ä¿ã€ããšãã§ããŸãã ãœãªã¥ãŒã·ã§ã³ã®å¹³åããªã¥ãŒã ã¯ã³ãŒãã®100ã200è¡ã§ãããå Žåã«ãã£ãŠã¯300è¡ã«éããããšããããŸããéåžžã®ç掻ã§ã¯ã300è¡ã¯ããã»ã©å€ããããŸããããããã§ã¯5æéãããããŸããããã¹ãŠã®åé¡ã®è§£æ±ºçã ãã°ããæžãå¿ èŠãããã300è¡ééããå Žåãã¿ã¹ã¯ã¯æ©èœããŸãããã€ãŸããããã解決ããããã®ãã¹ãŠã®æéãåã«å€±ãããŸãã ããã«ãã³ãŒããé·ãã»ã©ãå°å·çã§ãšã©ãŒãèŠã€ããã®ãé£ãããªããŸãã
ãã®ä»ã®ããŒãã¡ã³ããšãã¬ãŒãã³ã°
![](https://habrastorage.org/web/3ae/a6e/eaa/3aea6eeaa3ad4ccc89952a180c985f53.jpg)
è³éã¯ãããŒãã¡ã³ãåå è ã®äž»ãªåæ©ãšã¯ã»ã©é ããã®ã§ãã åçïŒIvan BelonogovãšIlya Zban-VKã«ãã2015ã®åªåè ïŒåºå ž-Ivan BelonogovããŒãžïŒã 2017幎ãVKã«ããã®åªåè ã¯ITMOãã£ã³ããªã³ããŒã ã®ãŠã©ãžããŒã«ã¹ãã«ããã®3人ç®ã®ã¡ã³ããŒã§ããã
ç§ãã¡ã¯åžžã«åã ã®ããŒãã¡ã³ãã«åå ããŠããŸã-å€ãã®ããŒãã¡ã³ãããããŸãã ããšãã°ããã·ã¢ã®ã³ãŒããã©ãŒã¹ã®ãŠã§ããµã€ãã§ã®ç«¶äºã¯ãå®æçã«æ°å人ãåŒãä»ãããã®ãã¡ãã·ã¢äººã¯éåžžçŽ20ïŒ ãå ããŠããŸãã ããã§ã®æšæºãã¢ãŒã¯ã2æéã§è§£æ±ºããå¿ èŠããã5ã€ã®ã¢ã«ãŽãªãºã åé¡ã§æ§æãããŠããŸãã ãã®ãªãœãŒã¹ãäžå¿ã«éçºãããã³ãã¥ããã£ã§æãéèŠãªããšã¯ããã§ã¹ã®ããã«Eloã·ã¹ãã ã«åŸã£ãŠèšç®ãããå人è©äŸ¡ã§ãã ããŒãã¡ã³ãã§æåè£ã«è©±ããšãããã°ã©ããŒã¯ãã€ã³ããç²åŸããŸã-ãããã®äžå®æ°ãããã¯ããŒã ã®è²ãèªåçã«å€æŽããŸãã èµ€ãããã¯ããŒã ãæã€äººã ã¯ãå©ãã®èŠè«ã ãã§ãªããéçšäž»ããã®ç³ãåºãåãåããŸãã ãããŠæãéèŠãªããšã¯ãä»ã®ãã£ã³ããªã³ã¢ã¹ãªãŒããšåæ§ã«ã圌ãã¯æ®éçã«å°æ¬ãããŠããŸã-å€ãã®åå è ã«ãšã£ãŠããèµ€ãããã¯ãã¯ããèªäœãæŠãããã®ååãªåæ©ãšããŠæ©èœããŸãã
![](https://habrastorage.org/web/39e/6e9/722/39e6e97220ce4d46980739e7c0d252e8.jpg)
èµ€ãããã¯ãããæ¥åŸé ã§ãæåã®é»ãæåãä»ããèµ€ãããã¯ã®ã¿ã 7æ13æ¥ãCodeforceã®äžäœ20人ã«ã¯ããã·ã¢äºº8人ããŠã¯ã©ã€ã人2人ãããŒã©ã³ã人ãäžåœäººãããã³ã¹ã€ã¹ããªãŒã¹ãã©ãªã¢ãéåœãç±³åœãå°æ¹Ÿããã©ã«ãŒã·ã®ä»£è¡šè 1人ãå«ãŸããŠããŸããã åæã«ããã©ã«ãŒã·ã®ããã°ã©ããŒã¯çŸåšãè©äŸ¡ããªãŒãããŠããŸãããååãšããŠãããŒãã«å ã®é åã¯çµ¶ããçºçããŠããŸãã
äž»èŠãªã³ã³ããã£ã·ã§ã³ã¯ã Mail.ru ã Yandex ã Facebook ã Googleããã³ãã®ä»ã®äŒæ¥ã«ãã£ãŠéå¬ãããŸãã ããšãã°ãçŸåšã®Google Code JamããŒãã¡ã³ãã®ç¬¬1ã©ãŠã³ãã§ã¯ã2äžäººãåå ããŸããã æ°åã®æé«ã®ãã©ã³ãTã·ã£ãã25-ãä»å¹Žã®ãããªã³ã§éå¬ããã決åæŠã«é²ã¿ãŸãã
Google Code Jamã«å ããŠãGoogleã¯å¥ã®ããŒãã¡ã³ã-Hash Codeãéå¬ããŸãããHashCodeã®æçµã¯äŒç€Ÿã®æ¬ç€Ÿã§éå¬ãããŸããã ç¹ã«åå è ã«ã¯ãå¯èœãªéãå°ãªãã«ãŒã¿ãŒãšã¯ã€ã€ã䜿çšããŠãWi-Fiãã€ã³ãã®ãããã¯ãŒã¯ã§å¯èœãªéãã«ããŒããå¿ èŠãããããã¢ãã©ã³ãäžããããŸãã ã ãã®ãããªåé¡ã«å¯Ÿããæé©ãªè§£æ±ºçã¯ãããŸãããããã¡ãããä»ã®åé¡ãããããŸã解決ããããšã¯å¯èœã§ãã
![](https://habrastorage.org/web/427/2ca/bc3/4272cabc357e49ff86e32403fb9d2285.jpg)
Googleããã·ã¥ã³ãŒãã®äž»å¬è ãã«ãŒã¿ãŒã®é 眮ãææ¡ãã建ç©ã®1ã€ã¯ãããªã°ã©ã³ããªãã©ã§ãã
å¥ã®ã¿ã€ãã®ç«¶äºã¯AIã«ããã§ãããããã§ã¯äž»å¬è ãã©ã€ãã©ãªã®åœ¢ã§æäŸããå ã®ããã°ã©ã ãšå¯ŸæŠã§ãã人工ç¥èœããã°ã©ã ãæžãå¿ èŠããããŸãã ã²ãŒã ã¯ããŒãã¡ã³ãå°çšã«äœæãããŠããŸããã€ãŸããååãšããŠæã§ãã¬ã€ããããšã¯ã§ããŸããã ããããã¹ã¯ãªããã¯ããããã®æŠç¥ãæžãããšãèå³æ·±ãããã«éžæãããŸãã
ä»å¹Žã®ã²ãŒã ã¯ææ°ã®MOBAã«äŒŒãŠããŸããã解決çã¯ã5人ã®ãŠã£ã¶ãŒããããªãããŒã ã管çããã³ãŒãã¯ãŒãã䜿çšããŠããŒã ã亀æããããšã§ããã
ãã®ãããªç«¶æã¯ããã©ã³ã¹ã®ãµã€ãCodinGameã§åžžã«éå¬ãããŠããŸãã ãŸããAIããŒãã¡ã³ãã§ã¯ãæåã®2ã20æ¥éã§ãã¬ãŒãã³ã°ããŸã£ããè¡ãããã«è¯ãçµæãåŸãããããšã¯çŽ æŽãããããšã§ãã ããã§ããã¹ããŒãããã°ã©ãã³ã°ã®äž»ãªã¹ãã«ã¯ã座ã£ãŠèããã³ãŒããæžãããšã§ãã
Topcoderãã©ãããã©ãŒã ã§ã¯ããã©ãœã³ãæ°é±éç¶ãããšããããŸãã Deadline24ãChallenge24ãªã©ãããã€ãã®ããŒãã¡ã³ãããããæçµæ¥ã¯1æ¥ç¶ããŸãã ãããã¯éžæãããéåžžã®ã¢ã«ãŽãªãºã ã®åââé¡ã解決ããæçµçã«ã¯ã²ãŒã ãå¶åŸ¡ããããã®æŠç¥ãäœæããå¿ èŠããããŸãã ãã®ããŒãã¡ã³ãã§ã¯ãæåã®12æéã¯ã³ãŒããèšè¿°ããäŒæ©åŸã«ãšã©ãŒãä¿®æ£ããããšãæãå¹æçã§ãããšæãããŸããã
ãªã³ã©ã€ã³ãã©ãããã©ãŒã ã䜿çšãããšãå¥åº·ãç¶æã§ããŸããããããªããšãã¿ã¹ã¯è§£æ±ºã¹ãã«ãããã«å€±ãããŸãã ãããã圌ãã¯ãã¡ããããã¬ãŒãã³ã°ãšããŠã ãã§ãªãèå³æ·±ããã®ã§ãã 競äºã¯åžžã«æ欲ãšææ ã§ããã競äºãªãã§ã¯èŠéããŸããã
ãã¬ãŒãã³ã°
æãéèŠãªç«¶æãšåæ§ã«ãã»ãšãã©ãã¹ãŠã®ãã¬ãŒãã³ã°ã¯5æéç¶ããŸãã éåžžãéå»ã®ããŒãã¡ã³ãã®1ã€ããåé¡ã解決ããã ãã§ãã å€ãã®æ°ããã¢ã«ãŽãªãºã ãç¥ã£ãŠãããããå®éã«ã¯æ°ããã¢ã«ãŽãªãºã ãåŠç¿ããŸããã çµå±ãç§ãã¡ã«æåŸ ãããã®ã¯ãè€éãªããŒã¿æ§é ã®ç¥èã§ã¯ãªããããã«è§£æ±ºçãèãåºãèœåã§ãã ãããã£ãŠãç¹å¥ãªæ¬ã¯æ¬åœã«å©ãã«ã¯ãªããŸããã åã ã®èšäºãèªãã ããã€ã³ã¿ãŒãããäžã®ç¹å®ã®ãããã¯ã«é¢ããè¬çŸ©ãèãããããæ¹ãã¯ããã«å¹ççã§ãã
幎ã«æ°åããã¬ãŒãã³ã°ãã£ã³ããéå¬ãããããŸããŸãªåœã®ããŒã ãéãŸããŸãã ç¹ã«ãä»å¹Žã¯åŒ·ãããŒã©ã³ã人ããããã¶ãŽã©ãŒãã¯ã«æ¥ãŠãäžåœãšãªãŒã¹ãã©ãªã¢ã®ããã°ã©ããŒããã«ãŽãã«ããã®MIPTã«æ¥ãŸããã ãã¬ãŒãã³ã°ãã£ã³ãã§ã¯ãä»ã®ããŒã ã«ãã£ãŠãããããããã®ãå«ããç¹å¥ã«æºåããã1é±éåã®æ°ããã¿ã¹ã¯ãåæããŸãã
ã¹ããŒãããã°ã©ãã³ã°ãšåŠç¿ãçµã¿åãããã®ã¯æåã®2幎éã¯å°é£ã§ããã倧åŠã§ã®ææ¥ä»¥æ¥ã3çªç®ãš4çªç®ã®ã³ãŒã¹ã§ã¯ç°¡åã«ãªããŸããã ååãšããŠãçŸæç¹ã§ã¯ãå€ãã®åŠçããã§ã«åãå§ããŠããŸãã ãã¡ãããããŒãã¡ã³ãåŸã«ãªãã¡ãŒãåãåããŸãããæ¬æ Œçãªä»äºãããæéã¯ãããŸããã
ã©ã€ãã«
æ匷ã®ããŒã ã¯ããã·ã¢ãããŒã©ã³ããäžåœãéåœãæ¥æ¬ã®å€§åŠãäžè²«ããŠåéããŠããŸãã æåããããŒã ã¯ã西ãšãŒããããŸãã¯ã¢ã¡ãªã«ã®å€§åŠããéžã°ããããšããããŸãããäžè¬çã«ã¹ããŒãããã°ã©ãã³ã°ã«ã¯ããŸãèå³ããããŸããã æ±ãšãŒããããšã¢ãžã¢ã¯ã ã³ãŒããã©ãŒã¹ãªã©ã®åã ã®ããŒãã¡ã³ããæ¯é ããŠããŸã ã å€ãã®ç«¶æäŒã®åå è ã®æ°ã§ã¯ãã€ã³ããåžžã«æåã§ãããã»ãšãã©ã®å Žåã代衚è ã®çµæã¯æé«ã§ã¯ãããŸããã ã€ã³ã人ã¯èšèšäžã®åé¡ã解決ããããšã«é·ããŠããŸãããããã¯Topcoderã®ç¹å¥ãªããŒãã¡ã³ãã§æããã«ãªã£ãŠããŸãã
![](https://habrastorage.org/web/69e/f97/93c/69ef9793ce6645868e5ed43228b28d98.jpg)
2017/18ã·ãŒãºã³ã®ã¢ã¡ãªã«ã®åŠæ ¡ããŒã ã ã¢ã¡ãªã«ã§ã®ã¹ããŒãããã°ã©ãã³ã°ã®æåã¯ãäž»ã«ã¢ãžã¢ã®ããã¯ã°ã©ãŠã³ããæã€è¥è ã«ãã£ãŠéæãããŠããŸãã
æãç¥ç§çãªã©ã€ãã«ã¯ãåæé®®ããã®ããã°ã©ããŒã®ããã§ãã€ã³ã¿ãŒããããžã®ã¢ã¯ã»ã¹ãå¶éãããŠããç¶æ³ã§ããŸã èšç·ŽãåããŠããããã°ãã°ããªãããŸãæ©èœããŠããŸãã 確ãã«ãä»å¹ŽåœŒãã¯ã¢ã¡ãªã«ã®æ±ºåæŠã«åºå ŽãããCodeforcesã§ã¯äžæ£è¡çºè ãšããŠã®è©å€ããããŸããã ç¹ã«ããªã³ã©ã€ã³ããŒãã¡ã³ãã®åæé®®ã®åå è ã¯ãæããã«ç°ãªã人ã ã1ã€ã®ã¢ã«ãŠã³ãããã³ãŒããæžãããšéé£ãããŸããã ãããŠãããã¯èŠåã«ãã£ãŠå³ããçŠæ¢ãããŠããŸãã
![](https://habrastorage.org/web/9b7/7a3/5a9/9b77a35a93af41cca5ac7a6929c90936.jpg)
ä»å¹Žãã¹ããã¯ãã«ã ã®çç«å·¥ç§å€§åŠã®åŠçã§ãã西ãšãŒãããã®ããŒã ã¯ãåœéãªãªã³ããã¯ã§ããã10ã«å ¥ããŸããã
ãã·ã¢ã®æåã¯éåžžã«ç解ããããããã§ãããªããªããããã§ããããŠéåžžã«åŒ·åãªæ°åŠã®åŠæ ¡ããããŠç¢ºç«ããããªãªã³ãã¢ãŒãã®å ã§ãåå¿è ãå©ããçšæãã§ããŠããããã§ãã ãã·ã¢ã§ã¯ãITMOã«å ããŠãéåžžã«åŒ·åãªããŒã ãããµã³ã¯ãããã«ãã«ã¯å·ç«å€§åŠïŒæšå¹Žã®ãã£ã³ããªã³ïŒãã¢ã¹ã¯ã¯å·ç«å€§åŠãã¢ã¹ã¯ã¯ç©çå·¥ç§å€§åŠãããã³ãšã«ããªã³ãã«ã¯ãšãµã©ããã®å€§åŠã«ãã£ãŠä»£è¡šãããŠããŸãããæã«ã¯è¯ã倧åŠãä»ã®å€§åŠãéããŠããŸãã
![](https://habrastorage.org/web/5b9/8cd/e3b/5b98cde3b350426fb4b52c445570a699.jpg)
å¥ã®ITMOããŒã ãæãããŠããŸãïŒArtyom Vasiliev and Boris Minaev and Gennady Korotkevich-2015 world championsã International Programming Olympiadã®ã«ããã¯è²æž¡ã§ããŸãã-çŸåšã7ã€ã¯ãã§ã«ITMOã«ä¿åãããŠããŸãã