サラリーマンã®æœã¯æ—©ã„。エリートコースを進ã¿ä¸€æµä¼æ¥ã«å…¥ç¤¾ã—ã¦æ–°äººã¨ã„ã†è‚©æ›¸ãã‹ã‚‰ã‚‚å’æ¥ã™ã‚‹é ƒã€åƒ•ã«ä¸‹ã£ãŸè¾žä»¤ã¯æœªé–‹ã®æƒ‘星ã«ãŠã‘ã‚‹å–¶æ¥æ´»å‹•ã ã£ãŸã€‚辺鄙ãªåœŸåœ°ã§ã®ä¸ä¾¿ãªç”Ÿæ´»ã‚’å¼·ã„られã¦ã„ã‚‹ãŒã€ä¸€å¿œã¯å·¦é·ã§ãªãæ „è»¢ã§ã‚ã‚Šã€ãã®è¨¼æ‹ ã«çµ¦æ–™ã‚‚ãã‚“ã¨ä¸ŠãŒã£ã¦ã„ã‚‹ - ã“ã‚“ãªå ´æ‰€ã§ã¯é‡‘ãªã‚“ã¦ä½¿ã„よã†ã‚‚ãªã„ã®ã ã‘ã©ã€‚近年僕ãŸã¡ãŒç›´é¢ã—ã¦ã„る宇宙è¦æ¨¡ã®ã‚¨ãƒãƒ«ã‚®ãƒ¼ä¸è¶³ã«å¯¾å¿œã™ã‚‹ãŸã‚ã€ç‰¹å®šã®ç”Ÿç‰©ç¨®ã®å€‹ä½“ã‹ã‚‰èŽ«å¤§ãªã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’生æˆã™ã‚‹ãƒ†ã‚¯ãƒŽãƒã‚¸ãƒ¼ãŒé–‹ç™ºã•ã‚ŒãŸã€‚ãã®ç‰¹å®šã®ç”Ÿç‰©ç¨®ã¨ã„ã†ã®ãŒã€ã“ã®è¾ºé„™ãªæƒ‘星ã®å›ºæœ‰ç¨®ãªã®ã 。ã“ã®ç”Ÿç‰©ãŒçµ¶æ»…ã—ãªã„よã†ã«ä¿è·ã—ã¤ã¤ã€é©åº¦ã«ã‚¨ãƒãƒ«ã‚®ãƒ¼ã‚’回åŽã—ã¦ã„ãã®ãŒåƒ•ã®ä»•äº‹ã 。
エãƒãƒ«ã‚®ãƒ¼ã®å›žåŽã¯ã€ã„ãã¤ã‹ã®ã‚¹ãƒ†ãƒƒãƒ—ã‹ã‚‰ãªã‚‹ã€‚ã¾ãšã¯ã€ã‚¨ãƒãƒ«ã‚®ãƒ¼ã®å›žåŽã«ä½¿ç”¨ã™ã‚‹å€‹ä½“ã‚’é¸åˆ¥ã™ã‚‹ã€‚個体ã«ã‚ˆã£ã¦å¾—られるエãƒãƒ«ã‚®ãƒ¼ã®é‡ã¯å¤§ããç•°ãªã‚‹ã®ã 。次ã«ã€é¸åˆ¥ã•ã‚ŒãŸè¦‹è¾¼ã¿ã®ã‚る個体ã«ã€ã‚¤ãƒ³ã‚ュベーションã¨ã„ã†ç‰¹åˆ¥ãªå‡¦ç†ã‚’è¡Œã†ã€‚インã‚ュベートã•ã‚ŒãŸå€‹ä½“ã¯è†¨å¤§ãªã‚¨ãƒãƒ«ã‚®ãƒ¼ã®æºã¨ãªã‚‹ä½•ã‹ã‚’を絶ãˆãšè“„ãˆãŸã‚Šåã出ã—ãŸã‚Šã™ã‚‹ã®ã§ã€å€‹ä½“ã«ã§ãã‚‹ã ã‘多ãã®ã‚¨ãƒãƒ«ã‚®ãƒ¼ã®æºã¨ãªã‚‹ä½•ã‹ãŒè“„ãˆã‚‰ã‚Œã¦ã„る瞬間を狙ã£ã¦ã€å††ç’°ã®ç†ã«å°Žã。ã™ã‚‹ã¨ãŠå¾…ã¡ã‹ãã®ã‚¨ãƒãƒ«ã‚®ãƒ¼ãŒæ‰‹ã«å…¥ã‚‹ã€ã¨ã„ã†ä»•çµ„ã¿ã 。
エリートサラリーマンã«èª²ã›ã‚‰ã‚Œã‚‹ãƒŽãƒ«ãƒžã¯åŽ³ã—ã„。ã—ã‹ã—ã€åƒ•ã«ã¨ã£ã¦æ•°å万ã®ã‚¤ãƒ³ã‚ュベートã•ã‚ŒãŸå€‹ä½“を管ç†ã™ã‚‹ã®ã¯æœé£¯å‰ã 。今日ã¯æœˆæœ«ãªã®ã§æœ¬ç¤¾ã«æœˆå ±ã‚’æ出ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„ãŒã€ä»Šæœˆã¯ã¨ã¦ã‚‚良ã„個体ã«éé‡ã—ãŸã“ã¨ã‚‚ã‚ã£ã¦ã€éŽåŽ»æœ€é«˜ã®æˆç¸¾ã«ãªã‚Šãã†ã 。
ã¨å–œã‚“ã§ã„ãŸã®ã‚‚æŸã®é–“ã€æœ€å¾Œã®æœ€å¾Œã§ã²ã©ã„ミスをやらã‹ã—ã¦ã—ã¾ã£ãŸã€‚SQL文を打ã¡é–“é•ãˆã¦ã€ä»Šæœˆã®æˆæžœã‚’記録ã—ã¦ã„るデータベースã®ãƒ†ãƒ¼ãƒ–ル 1 ã¤ã‚’ã¾ã‚‹ã”ã¨ãµã£é£›ã°ã—ã¦ã—ã¾ã£ãŸã®ã 。ã‚ã‚ŒãŒãªã‘ã‚Œã°ã€ä»Šæœˆã®æˆæžœã¯å…¨ãç„¡ã—ã¨ã„ã†ã“ã¨ã«ãªã£ã¦ã—ã¾ã†ã€‚é™æ ¼ã€å·¦é·ã€ã‚ã‚‹ã„ã¯è§£é›‡ã‚‚ã‚ã‚Šãˆã‚‹ã‹ã‚‚ã—ã‚Œãªã„。
最後ã®é ¼ã¿ã®ç¶±ã¯ã€ä½œæ¥ã®ãŸã³ã«ã“ã¾ã‚ã«ã¤ã‘ã¦ã„ãŸãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã 。僕ã¯ã„ã¤ã‚‚ã€å€‹ä½“をインã‚ュベートã™ã‚‹ãŸã³ã«ä¸€æ„ãªæ•´æ•°ã®ç•ªå·ã‚’振りã€ã‚¤ãƒ³ã‚ュベートã•ã‚ŒãŸå€‹ä½“ãŸã¡ã®ç•ªå·ã‚’ 1 ã¤ã®é…列ã«ä¿å˜ã—ã¦ã„る。僕ã®å–¶æ¥æ´»å‹•ã¯ã€æ¬¡ã®ã‚ˆã†ãªè¡Œå‹•ã‹ã‚‰ãªã‚‹ã€‚
僕ã¯ã“れら 4 ã¤ã®å–¶æ¥æ´»å‹•ã‚’è¡Œã†ãŸã³ã«ã€æ¬ ã‹ã•ãšãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã«è¨˜å…¥ã—ã¦ã„る。ã—ã‹ã—ã€4 ã®æ´»å‹•ã ã‘ã¯ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¸€åˆ‡è¨˜å…¥ã—ã¦ã„ãªã„。ãã†ã—ã¦ã‚‚特ã«æ›–昧ãªã¨ã“ã‚ã¯æ®‹ã‚‰ãªã„ãŸã‚ã 。
ã„ã¤ã‚‚僕ã¯ã€å€‹ä½“ã®ç•ªå·ã®é…列ã®æ“作を愚直ã«è¡Œãªã£ã¦ã„る。ã—ã‹ã—今度ã°ã‹ã‚Šã¯ã€æ„šç›´ã«æ“作ã—ãªãŒã‚‰ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’走査ã—ã¦ã„ã¦ã¯é–“ã«åˆã„ãã†ã«ãªã„ã€‚æœˆå ±ã®æ出期é™ã¯ 5 時間後ã«è¿«ã£ã¦ã„る。
ãã“ã§ã€å›ãŸã¡ã«ãŠé¡˜ã„ãŒã‚ã‚‹ã‚“ã 。ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰åƒ•ã®å–¶æ¥æ´»å‹•ã‚’å†ç¾ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を書ã„ã¦ã»ã—ã„。もã—書ã„ã¦ãã‚ŒãŸã‚‰ã€ãŠç¤¼ã«å›ãŸã¡ã®é¡˜ã„事を何ã§ã‚‚ 1 ã¤å¶ãˆã¦ã‚ã’よã†ã€‚何ã ã£ã¦æ§‹ã‚ãªã„。ã©ã‚“ãªé¡˜ã„ã“ã¨ã ã£ã¦å¶ãˆã¦ã‚ã’られるよ。
入力ã¯è¤‡æ•°ã®ã‚±ãƒ¼ã‚¹ã‹ã‚‰ãªã‚‹ã€‚ å„ケースã¯ä»¥ä¸‹ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
ã“ã“ã«ã¯å…¥åŠ›ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚’書ã。 q lim query0 x0 . . . queryq-1 xq-1
queryi ãŒ0ã®æ™‚ã€ã‚¤ãƒ³ã‚ュベートã—ãŸå€‹ä½“ã« xi ã®ç•ªå·ã‚’割り当ã¦ãŸã“ã¨ã‚’表ã™ã€‚
queryi ãŒ1ã®æ™‚ã€é…列㮠xi 番目ã®ç•ªå·ãŒç¤ºã™å€‹ä½“を円環ã®ç†ã«å°Žã。
queryi ãŒ2ã®æ™‚ã€ãã®æ™‚点ã§é…列ã«å«ã¾ã‚Œã¦ã„ã‚‹ä¸ã§ã€€xi 番目ã®å€‹ä½“ã®ç•ªå·ã‚’出力ã™ã‚‹
queryi ãŒ3ã®æ™‚ã€ç•ªå·ãŒ xi ã®å€‹ä½“を円環ã®ç†ã«å°Žã。
q = 0 ã‹ã¤ lim = 0ã®æ™‚入力ã®çµ‚ã‚りを表ã™ã€‚
lim ã¯32bit signed integerã§è¡¨ã™ã“ã¨ãŒã§ãã‚‹æ£ã®æ•´æ•°ã§ã‚る。
ã™ã¹ã¦ã®ã‚¯ã‚¨ãƒªãƒ¼ã«ã¤ã„ã¦ã€xi ã¯0以上ã®æ•´æ•°ã§32bit signed integerã§è¡¨ã™ã“ã¨ãŒã§ãる。
0ã®ã‚¯ã‚¨ãƒªãƒ¼ã«ã¤ã„ã¦ã€xi ã¯32bit signed integerã®ç¯„囲ã«åŽã¾ã‚‹éžè² æ•´æ•°ã§è¡¨ã•ã‚Œã‚‹ã€‚
1,2ã®ã‚¯ã‚¨ãƒªãƒ¼ã«ã¤ã„ã¦ã€xi ã®å€¤ã¯1以上ã®æ•´æ•°ã§ã‚る。ã¾ãŸå˜åœ¨ã—ãªã„é…列ã®ç•ªå·ãŒæŒ‡å®šã•ã‚Œã‚‹ã“ã¨ã¯ãªã„
3ã®ã‚¯ã‚¨ãƒªãƒ¼ã«ã¤ã„ã¦ã€å˜åœ¨ã—ãªã„個体番å·ãŒå…¥åŠ›ã«å«ã¾ã‚Œã‚‹ã“ã¨ã¯ãªã„。
ã¾ãŸä¸€åº¦æ¶ˆåŽ»ã•ã‚ŒãŸå€‹ä½“ã®ç•ªå·ãŒå€¤ãŒåŒã˜ãƒ†ã‚¹ãƒˆã‚±ãƒ¼ã‚¹å†…ã§ã€åˆ¥ã®å€‹ä½“ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹ã“ã¨ã¯ãªã„。
ジャッジデータã¯æ¬¡ã®2ã¤ã®ã†ã¡å°‘ãªãã¨ã‚‚片方を満ãŸã™ã€‚
1 ≤ q ≤ 400,000 ã‹ã¤ãƒ†ã‚¹ãƒˆã‚±ãƒ¼ã‚¹ã®æ•°ãŒ5個以下
1 ≤ q ≤ 10,000 ã‹ã¤ãƒ†ã‚¹ãƒˆã‚±ãƒ¼ã‚¹ã®æ•°ã¯50個以下
入力ã®ã‚¯ã‚¨ãƒªãƒ¼ãŒ2ã®å ´åˆã€x番目ã®å€‹ä½“番å·ã‚’出力ã™ã‚‹
å„ケースã®æœ€å¾Œã«ã¯"end"を出力ã™ã‚‹
22 5 0 0 0 1 0 2 0 3 0 4 2 1 2 2 2 3 2 4 2 5 0 5 2 1 0 6 2 2 3 3 2 2 2 2 1 2 2 2 2 1 2 2 2 3 30 5 0 383594529 1 1 0 868094164 0 708344471 0 4102559 0 944076771 0 320398558 1 1 0 949521499 0 1035499529 0 585547493 0 915496840 0 721553343 0 405934659 0 814301872 1 1 2 3 0 919753364 1 1 0 69231610 2 2 0 373477673 0 842917649 0 961543702 0 907959899 2 1 2 2 2 3 2 4 2 5 30 5 0 726736645 0 1 0 344304573 0 241734870 3 726736645 1 3 2 1 0 586879203 2 3 0 511883046 0 481344051 0 154183395 0 435126242 0 185906768 1 1 0 383123551 0 20253038 1 5 2 1 2 2 0 163044554 3 435126242 0 105612613 0 725050544 0 559442328 2 1 2 2 2 3 2 4 2 5 0 0
0 1 2 3 4 1 3 4 4 5 2 5 6 end 405934659 405934659 69231610 373477673 842917649 961543702 907959899 end 1 586879203 154183395 435126242 383123551 163044554 105612613 725050544 559442328 end
The University of Aizu Programming Contest 2011 Summer
原案: Tomoya Sakai
å•é¡Œæ–‡: Takashi Tayama