太郎å›ã¯ 8 パズルãŒå¤§å¾—æ„ã§ä¼‘ã¿æ™‚é–“ãªã©ã«ã„ã¤ã‚‚å‹é”ã«ä¸¦ã³æ›¿ãˆã¦ã‚‚らã£ã¦éŠã‚“ã§ã„ã¾ã™ã€‚ãã‚“ãªã¨ãã€å‹é”ã‹ã‚‰ã€Œã‚‚ã£ã¨è¤‡é›‘ãªãƒ‘ズルã¯è§£ã‘ã‚‹?ã€ã¨èžã‹ã‚ŒãŸã®ã§ã™ãŒã€ä»–ã®ãƒ‘ズルã¯ã‚„ã£ãŸã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。ã©ã†ã‚„らãã®å‹é”ã¯è‡ªä½œã§ 11 パズルを作ã£ã¦ã„ãŸã¿ãŸã„ã§ã™ã€‚ãã®ãƒ‘ズルã¯ä»¥ä¸‹ã®ã‚ˆã†ãªå½¢ã‚’ã—ã¦ã„ã¾ã™ã€‚
11 パズル㯠11 æžšã®æ£æ–¹å½¢ã®ã‚«ãƒ¼ãƒ‰ã¨ã€å›³ 1 ã®ã‚ˆã†ãªå½¢ã®æž を使ã£ã¦è¡Œã„ã¾ã™ã€‚最åˆã« 11 æžšã®ã‚«ãƒ¼ãƒ‰ã‚’æž ã«å…¥ã‚Œã¾ã™ã€‚ã™ã‚‹ã¨ 2 カ所ã®ç©ºãスペースãŒã§ãã¾ã™ã®ã§ã€ã“ã®ç©ºãスペースã«éš£æŽ¥ã—ãŸã‚«ãƒ¼ãƒ‰ã‚’å‹•ã‹ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れを繰り返ã—ã€ã‚«ãƒ¼ãƒ‰ã‚’ãã‚Œã„ã«æ•´åˆ—ã—ã¦ã€å›³ 2 ã®å®Œæˆåž‹ã«ã™ã‚‹ã“ã¨ãŒ 11 パズルã®ç›®çš„ã§ã™ã€‚
太郎å›ã¯ã“ã®ãƒ‘ズルã«æŒ‘戦ã™ã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚ã¨ã“ã‚ãŒå¤ªéƒŽå›ã¯ã“ã® 11 パズルをã„ã¨ã‚‚ç°¡å˜ã«è§£ã„ã¦ã—ã¾ã„ã¾ã—ãŸã€‚ãã“ã§å‹é”ã¯ã€Œå‹•ã‹ã™æ•°ã‚’一番少ãªãã—ã¦è§£ã„ã¦ã‚ˆ!ã€ã¨ç„¡èŒ¶ãªã“ã¨ã‚’言ã£ã¦ãã¾ã—ãŸã€‚太郎å›ã¯ç”ãˆãŒã‚ã‹ã‚‰ãªã„ã®ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®ã§ãã‚‹ã‚ãªãŸã« 11 パズルを解ãã¨ãã®æœ€å°ã‚¹ãƒ†ãƒƒãƒ—数を出ã™ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã—ã¦ã‚‚らã£ã¦ã‹ã‚‰æŒ‘戦ã™ã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚ã“ã®ã¨ãã€2 カ所動ã‹ã›ã‚‹ã¨ã“ã‚ãŒã‚ã‚‹ã®ã§ã™ãŒã€ä¸€ã¤ã®æ•°å—ã‚’ 1 スペース分移動ã•ã›ã‚‹ã“ã¨ã‚’1ステップã¨ã—ã¦è€ƒãˆã‚‹ã“ã¨ã¨ã—ã¾ã™ã€‚
11 パズルã®åˆæœŸçŠ¶æ…‹ã‚’入力ã¨ã—ã€11 パズルを解ãã¨ãã®æœ€å°ã‚¹ãƒ†ãƒƒãƒ—数を出力ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã—ã¦ãã ã•ã„。ãŸã ã—ã€ãƒ‘ズルを解ãã¨ãã®æœ€å°ã‚¹ãƒ†ãƒƒãƒ—数㌠20 ステップより多ãã‹ã‹ã£ã¦ã—ã¾ã†å ´åˆã¯ã€ã€ŒNAã€ã¨å‡ºåŠ›ã—ã¦ãã ã•ã„。パズルã®çŠ¶æ…‹ã¯ã€ä¸€è¡Œç›®ã®æƒ…å ±ã‹ã‚‰é †ã«å…¥åŠ›ã•ã‚Œã‚‹ã‚‚ã®ã¨ã—ã€æ•°å—ã® 0 ã¯ç©ºãスペースを表ã—ã¾ã™ã€‚例ãˆã°ã€å›³ 1 ã®çŠ¶æ…‹ã‚’表ã™å…¥åŠ›ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
6 2 1 3 10 5 7 0 8 9 4 11 0
複数ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã®ä¸¦ã³ãŒå…¥åŠ›ã¨ã—ã¦ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚入力ã®çµ‚ã‚ã‚Šã¯-1ã²ã¨ã¤ã®è¡Œã§ç¤ºã•ã‚Œã¾ã™ã€‚ å„データセットã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13
i 行目ã«ãƒ‘ズル㮠i 行目ã®æƒ…å ± pi (0 ≤ pi ≤ 11) ãŒç©ºç™½åŒºåˆ‡ã‚Šã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
データセットã®æ•°ã¯ 100 を超ãˆã¾ã›ã‚“。
データセット毎ã«ã€æœ€å°ã‚¹ãƒ†ãƒƒãƒ—æ•°ã¾ãŸã¯ NA を1行ã«å‡ºåŠ›ã—ã¾ã™ã€‚
2 1 0 3 4 5 6 7 8 9 0 11 10 0 1 2 3 4 5 6 7 8 9 10 11 0 0 11 10 9 8 7 6 5 4 3 2 1 0 -1
2 0 NA