âåé¡æã¸ã®ãªã³ã¯
ã¿ã¤ãã«ãè¦ã¦ï¼ãã®å¹¾ä½ã®ãã°ããã¤ã®ç¶ç·¨ãï¼ããã ãªï½ã¨æã£ã¦ããã®ã§ãããã㯠D - Water Bottle ã§ããï¼
èå¯ã¯ã»ã¼ä¸ç¬ã§çµãã£ã¦å®è£ ã§æéåã£ãã®ã§ããï¼twitterãè¦ãã¨èå¯ãé£ããã¨è¨ã£ã¦ãã人ãå¤ãã¦ã³ã£ãããã¦ãã¾ããï¼ ããããã¯ãããªã«é£ãããªãï¼è¶ï½ç·diffãããï¼ï¼å ¸åçãªè¦ç´ ãããã¤ãçµã¿åããã£ã¦é£æ度ãédiffã¾ã§ä¸ãã£ã¦ããå°åã²ã¼ã¨ããå°è±¡ããã£ã¦ï¼ããããã®ãå®å®ãã¦æ©ã解ãããã©ããã§å®ååºããã ãªï½ã¨æã£ã¦ãã¾ããï¼ã¨ãããã¨ã§æ¯ãè¿ãå ¼èªçã¨ãã¦ãã®åé¡ã®è§£èª¬ãæ¸ãã¾ãï¼
åé¡æ
é«æ©å㯠æ¬ã®ç ç³æ°´ããéæ¨å㯠æ¬ã®ç ç³æ°´ãæã£ã¦ãã¾ãã
é«æ©åã®æã£ã¦ãã çªç®ã®ç ç³æ°´ã¯ç ç³ ã°ã©ã ã¨æ°´ ã°ã©ã ãããªãã¾ãã
éæ¨åã®æã£ã¦ãã çªç®ã®ç ç³æ°´ã¯ç ç³ ã°ã©ã ã¨æ°´ ã°ã©ã ãããªãã¾ãã
人ã®æã¤ç ç³æ°´ããããã æ¬ãã¤é¸ãã§æ··ããæ¹æ³ã¯ éãããã¾ãããã®ãããªæ¹æ³ã§ã§ããç ç³æ°´ã®ä¸ã§ãæ¿åº¦ãé«ãæ¹ãã çªç®ã®ç ç³æ°´ã®æ¿åº¦ãä½ % ã§ããããæ±ãã¦ãã ããã
Kçªç®ã¯ä½ã§ããåé¡
ãã®åé¡ã®ãããªï¼ããé åºã§ä¸¦ã¹æ¿ããã¨ã çªç®ã«ãªããã®ã¯ä½ã§ããï¼ã¨ããåé¡ã«ã¯å¤§ãã2ã¤ã®è§£æ³ãããã¨æã£ã¦ãã¾ãï¼
- åãã貪欲ã«æ±ºå®ã§ããæ§é ããããã®
ä¾é¡â atcoder.jp
è¾æ¸é ã§ï½ã¨è¨ããããã¾ãããã§ãï¼è¾æ¸é ã§ã¯ï¼å é ã®æåãaã§ãããã®ã¯çµ¶å¯¾ã«bãããå ã«ãªãã®ã§ï¼å é ããæåã貪欲ã«æ±ºå®ãã¦ãããã¨ãã§ãã¾ãï¼
ä¾ãã°ãã®ä¾é¡ã§ã¯ï¼å é ãaã§ãããbã§ããããã¾ãå¤å®ãï¼æ¬¡ã«2çªç®ãâ¦ã¨é çªã«æ±ºãã¦ãããã¨ãã§ãã¾ãï¼
- äºåæ¢ç´¢ã§å¤å®åé¡ã«è½ã¨ãè¾¼ãããã®
ä¾é¡â
è¾æ¸é ã®ããã«ï¼ãããåã£ãã絶対ã«æå°ã«ãªãã¿ãããªãã¾ãæ§è³ªããªãã¨ãã¯å¤åããã§ãï¼æçµçãªçãã決ãæã£ã¦ï¼å¤å®åé¡ã«å¤ãã¦ãã¾ãã¾ãï¼
ä»åã¯ç ç³æ°´ã®æ¿åº¦ã«ããæ§è³ªããªãã®ã§ï¼1ã®æ¹æ³ã§è§£ãã®ã¯å³ãããã§ãï¼ãã£ã¦2ã®æ¹æ³ã§è§£ãã¾ãããï¼
äºåæ¢ç´¢ã«è½ã¨ãè¾¼ã
ä¸ãã çªç®ã®ç ç³æ°´ã®æ¿åº¦ã¯ 以ä¸ãï¼ã¨ããå¤å®åé¡ãèãã¾ãï¼ã以ä¸ãã¨ããæ¡ä»¶ã«ãããã¨ã§ï¼ããæãã«è§£ãã¾ãï¼ãã®åé¡ã«éããï¼ã´ã£ãã ãå¤å®ããã®ãé£ããã㰠以ä¸/以ä¸ãèãã¦ã¿ãã¨ããã®ã¯è¯ãçºæ³ã ã¨æãã¾ãï¼
ä¸ãã çªç®ã %以ä¸ã¨ãããã¨ã¯ï¼ä¸ãã çªç®ã¯ ãã¼ã»ã³ã以ä¸ãããªãã¨ãã¡ã§ãï¼ãã£ã¦ï¼ãã®å¤å®åé¡ã¯ï¼ä»¥ä¸ã®ããã«è¨ãæãããã¾ãï¼
- éãã®ç ç³æ°´ã®ãã¡ï¼æ¿åº¦ã 以ä¸ã®ç ç³æ°´ã å以ä¸ãããï¼
ããã解ããã¨ï¼ãã¨ã¯ ã«ã¤ãã¦äºåæ¢ç´¢ããã°ACã§ãï¼ ã®ç¯å²ã§å®æ°ã§äºåæ¢ç´¢ããã°ããã§ãï¼
å®æ°ã®äºåæ¢ç´¢ã«ã¤ãã¦ã¯ãã³ã¡ããã®ãã¦ããªè¨äºããèªã¿ãã ããï¼èªåã¯æ±ºãæã¡ã®æ¹ãï¼ç«¶ããæèã§ã¯ï¼ããã¨æãã¾ãï¼
以éã¯ãã®å¤å®åé¡ã®è§£æ³ãèãã¦ãããã¨ã«ãªãã¾ãï¼
å¤å®åé¡ã解ã
- éãã®ç ç³æ°´ã®ãã¡ï¼æ¿åº¦ã 以ä¸ã®ç ç³æ°´ã å以ä¸ãããï¼
ã¨ããåé¡ã¯ï¼æç´ã«å ¨éã試ããã¨ã§ ã§è§£ãã¾ãï¼ãï¼ããã§ã¯é ãã®ã§é«éåãèãã¾ãããï¼
ã¾ãï¼å¼ãæ¸ãã¦ã¿ã¾ãããï¼åé¡æã«å¼ãæ¸ãã¦ããã¦ããã®ã§ï¼é«æ©åãç ç³æ°´ ï¼éæ¨åãç ç³æ°´ ãåã£ãã¨ãã¦ï¼å¼ã«ä»£å ¥ãã¦æ¿åº¦ãè¨ç®ãã¾ãï¼
ãã£ã¦ï¼å¤å®åé¡ã¯ï¼
以ä¸ã®æ¡ä»¶ãæºãã ã å以ä¸ãå¤å®ããï¼
ã¨ããæ°ãä¸ãåé¡ã«å¸°çã§ãã¾ãï¼
å¤æ°åé¢
ãã®ãã㪠ã®å ¥ãä¹±ããåé¡ã¯ï¼ ã®ã¤ããé ãå·¦è¾ºï¼ ã®ã¤ããé ãå³è¾ºã«å¯ãããããèãã¦ã¿ãã¨ããã§ãï¼ããããã¨ï¼ ãåºå®ã㦠ãé«éã«æ°ããã¿ãããªæ¹éã§è§£ãããã¨ãå¤ãã§ãï¼
âä¾é¡
ã¨ãããã¨ã§ãããç®æãã¦å¼å¤å½¢ãã¾ãï¼
ã§ãã¾ããï¼ãã¨ã¯ï¼ ã¨ããæ°å ï¼ ã¨ããæ°å ãç¨æããã¨ï¼ä»¥ä¸ã®åé¡ã«ãªãã¾ãï¼
以ä¸ã®æ¡ä»¶ãæºãã ã å以ä¸ãå¤å®ããï¼
ããã¾ã§ããã¨è¶diffãããã§ãããï¼ããããã® ã«ã¤ãã¦ï¼ ã«å«ã¾ãã 以ä¸ã®è¦ç´ ã®åæ°ãåããã°è¯ãã®ã§ï¼ ãã½ã¼ããã¦äºåæ¢ç´¢ããã°ããã§ãï¼Pythonãªã bisect_left ããã ãã§ãï¼
å®è£ ã®éã«
ã³ã³ãã¹ãæ¬çªã§ï¼å¼å¤å½¢ã¾ã§ã¯å²ã¨ã¹ãã¬ã¼ãã«ã§ããã®ã§ããï¼å¸°çãã¦ããã大å¤ã§ããï¼ç´ ç´ã« ãäºåæ¢ç´¢ãã¦ããã¨ããï¼å°ºåãæ³çã«ã§ããªããï¼ã¿ãããªãã¨ããã£ã¨èãã¦ãã¾ããï¼å¶ç´ãæ§ããã§ï¼log2ã¤ããããªãéããã¨ããæããªã®ã§ãã¨ãªããçããã¹ãã§ãããï¼
å®è£ ãçä¸ããã¦ããã¨ããï¼maspyããã®ãã®ãã¤ã¼ããæãåºãã¾ããï¼
A ã¯ç´ãããªãã¦ã¨ãã£ã¿ã§å¼å¤å½¢ãããã ããããããªæãã pic.twitter.com/0eqItfnA9H
— maspy (@maspy_stars) 2023å¹´3æ19æ¥
ï¼ãªããã¡ãã£ã¨åã«ä¼¼ã趣æ¨ã®ãã¤ã¼ãããã£ãæ°ããããæãåºããªãï¼
ãããåèã«ï¼æç´ãæ¸ãã¤ã¤åããã¦ãããã¨ã«ããã¨ããçããåãã¾ããï¼
æç´ãæ¸ãã¤ã¤ç´°é¨ãé¨åãã¨ã«åããã¦ããã¿ãããªã®ã¯ç«¶æã«éããããã°ã©ãã³ã°ã®æ±ç¨ãã¯ããã¯ã ã¨æãã®ã§ï¼ããããã®ãããã§ããªãã®ã¯åçãã¤ã³ãã§ãï¼
ææ³ãªã©
ã³ã³ãã¹ãä¸ã®æåºã§ãâ
ãã解説ãæ¸ãã¦ã¿ãã¨ï¼ãã£ããédiffã ãªã¨ããå°è±¡ã«ãªãã¾ããï¼ãããï¼Fåé¡ã®å®è£ éã¨ãã¦ã¯å°ãªãæ¹ãªã®ã§ï¼ããã¡ãã£ã¨æ©ãéãã¦ãã°ã¨ããæãã§ãï¼