Nathan O. Davis ãã‚“ã¯ï¼Œã‚るゲームを攻略ä¸ã§ã‚り,éžå¸¸ã«ãƒ¬ã‚¢ãªã‚¢ã‚¤ãƒ†ãƒ を手ã«å…¥ã‚Œã‚ˆã†ã¨å››è‹¦å…«è‹¦ã—ã¦ã„ãŸï¼Žã“ã®ãƒ¬ã‚¢ãªã‚¢ã‚¤ãƒ†ãƒ ã¯ï¼Œã‚«ã‚¸ãƒŽã®ã‚¹ãƒãƒƒãƒˆãƒžã‚·ãƒ¼ãƒ³ã§ç‰¹æ®ŠãªçµµæŸ„を一列ã«æƒãˆãŸã¨ãã«æ‰‹ã«å…¥ã‚Œã‚‹ã“ã¨ãŒã§ãる.スãƒãƒƒãƒˆãƒžã‚·ãƒ¼ãƒ³ã«ã¯ N 個ã®ãƒªãƒ¼ãƒ«ãŒã‚り,ボタンを一回押ã™ã¨ç¾åœ¨å›žè»¢ã—ã¦ã„る最も左å´ã®ãƒªãƒ¼ãƒ«ãŒåœæ¢ã™ã‚‹ï¼Žãã®ãŸã‚,ã“ã®ãƒ¬ã‚¢ã‚¢ã‚¤ãƒ†ãƒ を手ã«å…¥ã‚Œã‚‹ãŸã‚ã«ã¯ N 回ボタンを押ã™å¿…è¦ãŒã‚る.ã¾ãŸï¼Œç‰¹æ®ŠãªçµµæŸ„ã§åœæ¢ã•ã›ã‚‹ãŸã‚ã«ã¯ã‚るタイミングã§ãƒœã‚¿ãƒ³ã‚’押ã™å¿…è¦ãŒã‚る.ã¨ã“ã‚ãŒï¼Œã“ã®ãƒœã‚¿ãƒ³ã‚’押ã™ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã¯éžå¸¸ã«ã‚·ãƒ“ã‚¢ã§ã‚ã‚‹ãŸã‚,ãªã‹ãªã‹ä¸Šæ‰‹ãã„ã‹ãšã«å›°ã£ã¦ã„ãŸï¼Žãã“ã§ï¼ŒNathan ãã‚“ã¯ãƒ¡ãƒ¢ãƒªãƒ“ューアを利用ã—ã¦ï¼Œã‚²ãƒ¼ãƒ ä¸ã«ãŠã‘るメモリã®å€¤ã‚’確èªã—ãªãŒã‚‰ã‚²ãƒ¼ãƒ を解æžã™ã‚‹ã“ã¨ã«ã—ãŸï¼Ž
Nathan ãã‚“ã®è§£æžã®çµæžœï¼Œãã®ç‰¹æ®ŠãªçµµæŸ„ã§ãƒªãƒ¼ãƒ«ã‚’åœæ¢ã•ã›ã‚‹ãŸã‚ã«ã¯ï¼Œãƒœã‚¿ãƒ³ãŒæŠ¼ã•ã‚ŒãŸæ™‚ã«ï¼Œãƒ¡ãƒ¢ãƒªã® 007E0D1F 番地ã«æ›¸ãè¾¼ã¾ã‚ŒãŸã€Œä¹±æ•°ã€ãŒç‰¹å®šã®å€¤ã«ãªã£ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚‹ã“ã¨ã‚’çªãæ¢ã‚ãŸï¼Žä¹±æ•°ã®å€¤ã¯ 1 フレーム毎ã«ç·šå½¢åˆåŒæ³•ã«ã‚ˆã£ã¦å¤‰åŒ–ã—ã¦ãŠã‚Šï¼Œã¾ãŸãƒœã‚¿ãƒ³ãŒæŠ¼ã•ã‚ŒãŸã‹ã©ã†ã‹ã®åˆ¤å®šã¯ 1 フレーム毎㫠1 回行ã‚ã‚Œã¦ã„ã‚‹ã“ã¨ã‚‚分ã‹ã£ãŸï¼Žã“ã“ã§ï¼Œç·šå½¢åˆåŒæ³•ã¨ã¯æ“¬ä¼¼ä¹±æ•°ã‚’生æˆã™ã‚‹ãŸã‚ã®æ–¹æ³•ã®ä¸€ã¤ã§ã‚り,以下ã®å¼ã«ã‚ˆã£ã¦å€¤ã‚’決定ã™ã‚‹ï¼Ž
x' = (A × x + B) mod C
ã“ã“ã§ï¼Œx ã¯ç¾åœ¨ã®ä¹±æ•°ã®å€¤ï¼Œx' ã¯æ¬¡ã®ä¹±æ•°ã®å€¤ï¼ŒA, B, C ã¯ä½•ã‚‰ã‹ã®å®šæ•°ã§ã‚る.ã¾ãŸï¼Œy mod z 㯠y ã‚’ z ã§å‰²ã£ãŸã¨ãã®ä½™ã‚Šã‚’表ã™ï¼Ž
例ãˆã°ï¼Œ2 個ã®ãƒªãƒ¼ãƒ«ã‚’æŒã¤ã‚¹ãƒãƒƒãƒˆãƒžã‚·ãƒ¼ãƒ³ã§ A = 5,B = 7,C = 11 ã§ï¼Œæœ€åˆã®ã€Œä¹±æ•°ã€ã®å€¤ãŒ 10 ã§ã‚ã£ãŸã¨ã™ã‚‹ï¼Žãã—ã¦ï¼Œç‰¹æ®ŠãªçµµæŸ„ã§ãƒªãƒ¼ãƒ«ã‚’æ¢ã‚ã‚‹ãŸã‚ã®æ¡ä»¶ã¯ï¼Œå·¦å´ã®ãƒªãƒ¼ãƒ«ãŒ 2,å³å´ã®ãƒªãƒ¼ãƒ«ãŒ 4 ã§ã‚ã£ãŸã¨ã™ã‚‹ï¼Žã“ã®ã¨ã,1 フレーム目ã«ãŠã‘る乱数ã®å€¤ã¯ (5 × 10 + 7) mod 11 = 2 ã§ã‚ã‚‹ãŸã‚,1 フレーム目ã«ãƒœã‚¿ãƒ³ã‚’押ã›ã°å·¦å´ã®ãƒªãƒ¼ãƒ«ã¯ç‰¹æ®ŠãªçµµæŸ„ã§åœæ¢ã™ã‚‹ï¼Žç¶šã 2 フレーム目ã§ã®ä¹±æ•°ã®å€¤ã¯ (5 × 2 + 7) mod 11 = 6 ã§ã‚ã‚‹ã‹ã‚‰ï¼Œ2 フレーム目ã«ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ã‚‚å³å´ã®ãƒªãƒ¼ãƒ«ã¯ç‰¹æ®ŠãªçµµæŸ„ã§ã¯åœæ¢ã—ãªã„.続ã 3 フレーム目ã§ã¯ä¹±æ•°ã®å€¤ãŒ (5 × 6 + 7 ) mod 11 = 4 ã«ãªã‚‹ã®ã§ï¼Œ3 フレーム目ã«ãƒœã‚¿ãƒ³ã‚’押ã›ã°å³å´ã®ãƒªãƒ¼ãƒ«ã¯ç‰¹æ®ŠãªçµµæŸ„ã§åœæ¢ã™ã‚‹ï¼Žã‚ˆã£ã¦ï¼Œæœ€çŸ 3 フレームã§å…¨ã¦ã®ãƒªãƒ¼ãƒ«ã‚’特殊ãªçµµæŸ„ã§åœæ¢ã•ã‚Œã‚‹ã“ã¨ãŒã§ã,レアãªã‚¢ã‚¤ãƒ†ãƒ を手ã«å…¥ã‚Œã‚‹ã“ã¨ãŒã§ãる.
ã‚ãªãŸã®ä»•äº‹ã¯ï¼Œæœ€çŸã§ä½•ãƒ•ãƒ¬ãƒ¼ãƒ ç›®ã«å…¨ã¦ã®ãƒªãƒ¼ãƒ«ã‚’特殊ãªçµµæŸ„ã§åœæ¢ã•ã›ã‚‹ã“ã¨ãŒã§ãã‚‹ã‹ã‚’求ã‚るプãƒã‚°ãƒ©ãƒ を書ã„ã¦ï¼ŒNathan ãã‚“ãŒãƒ¬ã‚¢ãªã‚¢ã‚¤ãƒ†ãƒ を手ã«å…¥ã‚Œã‚‰ã‚Œã‚‹ã‚ˆã†åŠ©ã‘ã¦ã‚ã’ã‚‹ã“ã¨ã§ã‚る.
入力ã¯è¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã‹ã‚‰ãªã‚‹ï¼Žå„データセットã¯æ¬¡ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
N A B C X
Y1 Y2 ... YN
最åˆã®è¡Œã«ã¯ 5 ã¤ã®æ•´æ•° N (1 ≤ N ≤ 100) ,A, B (0 ≤ A, B ≤ 10,000),C (1 ≤ C ≤ 10,000) ,X (0 ≤ X < C) ãŒãã‚Œãžã‚Œ 1 ã¤ã®ç©ºç™½æ–‡å—ã§åŒºåˆ‡ã‚‰ã‚Œã¦ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Žã“ã“ã§ï¼ŒX ã¯æœ€åˆã®ä¹±æ•°ã®å€¤ã‚’表ã™ï¼Žç¶šãè¡Œã§ã¯ï¼ŒN 個ã®æ•´æ•° Y1, Y2, ... , YN (0 ≤ Yi ≤ 10,000) ㌠1 ã¤ã®ç©ºç™½æ–‡å—ã§åŒºåˆ‡ã‚‰ã‚Œã¦ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Žã“れらã¯ï¼Œãƒªãƒ¼ãƒ«ã‚’特定ã®çµµæŸ„ã§æ¢ã‚ã‚‹ãŸã‚ã®æ¡ä»¶ã‚’表ã—ã¦ãŠã‚Šï¼Œãã®ç¬¬ i 番目ã®æ•° Yi ã¯ï¼Œå·¦ã‹ã‚‰ i 番目ã®ãƒªãƒ¼ãƒ«ã‚’特殊ãªçµµæŸ„ã§åœæ¢ã™ã‚‹ãŸã‚ã«ã¯ï¼Œä¹±æ•°ã®å€¤ãŒ Yi ã§ã‚ã‚‹å¿…è¦ãŒã‚る,ã„ã†æ„味ã§ã‚る.
入力ã®çµ‚ã‚ã‚Šã¯ï¼Œç©ºç™½ã§åŒºåˆ‡ã‚‰ã‚ŒãŸ 5 ã¤ã® 0 ã‚’å«ã‚€ 1 è¡Œã§ç¤ºã•ã‚Œã‚‹ï¼Ž
å„データセットã«ã¤ã„ã¦ï¼Œç‰¹æ®ŠãªçµµæŸ„ã§åœæ¢ã•ã›ã‚‹ãŸã‚ã«å¿…è¦ã¨ãªã‚‹æœ€çŸã®ãƒ•ãƒ¬ãƒ¼ãƒ æ•°ã‚’ 1 è¡Œã«å‡ºåŠ›ã›ã‚ˆï¼ŽãªãŠï¼Œ10,000 フレーム以内ã«åœæ¢ã•ã›ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã¯ï¼Œãƒ•ãƒ¬ãƒ¼ãƒ æ•°ã®ä»£ã‚ã‚Šã« -1 を出力ã›ã‚ˆï¼Žå‡ºåŠ›ã«ä½™è¨ˆãªç©ºç™½ã‚„改行をå«ã‚ã¦ã¯ãªã‚‰ãªã„.
1 5 7 11 10 10 2 5 7 11 10 2 4 2 1 1 256 0 128 255 2 0 0 1 0 1234 5678 2 1 1 100 0 99 98 2 1 1 100 0 99 99 2 1 1 10000 0 1 0 2 1 1 10000 0 2 1 0 0 0 0 0
0 3 255 -1 198 199 10000 -1