ä¸é‹ãªã‚¤ã‚¯ã‚¿å›ã¯æŒã£ã¦ã„ãŸå¤§äº‹ãªæ–‡å—列Tをウィルスã«ã‚ˆã£ã¦ç•°ãªã‚‹æ–‡å—列T'ã«æ›¸ãæ›ãˆã‚‰ã‚Œã¦ã—ã¾ã£ãŸã€‚ãã®ã‚¦ã‚£ãƒ«ã‚¹ãŒTã®ï¼‘æ–‡å—ã‚’ç•°ãªã‚‹æ–‡å—ã«æ›¸ãæ›ãˆã¦ã—ã¾ã£ãŸã“ã¨ãŒã‚ã‹ã£ã¦ã„る。ã™ãªã‚ã¡Tã¨T'ã¯ã¡ã‚‡ã†ã©ï¼‘æ–‡å—ã®ã¿ç•°ãªã£ã¦ã„る。イクタå›ã¯Tを復元ã™ã‚‹ãŸã‚ã«ã€TãŒå‡ºç¾ã—ã¦ã„ã‚‹ã¨æ€ã‚れる文書Sを用æ„ã—ãŸã€‚Tを復元ã™ã‚‹ãŸã‚ã®ä¸‹æº–å‚™ã¨ã—ã¦Sã®éƒ¨åˆ†æ–‡å—列ã§Tã¨ä¸€è‡´ã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã‚‚ã®ã®å€‹æ•°ã‚’調ã¹ãŸã„。
æ–‡å—列T'ã¨æ–‡æ›¸SãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚ S = a1 a2 a3 . . . a|S|ã®é•·ã•|T'|ã®éƒ¨åˆ†æ–‡å—列ak ak+1 . . . ak+|T'|−1(1 ≤ k ≤ |S| − |T'| + 1) ã§T'ã¨æ¯”較ã—ã¦1æ–‡å—ã ã‘ç•°ãªã‚‹ã‚‚ã®ã®æ•°ã‚’求ã‚よ。
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
S
T'
入力ä¸ã®å„変数ã¯ä»¥ä¸‹ã®åˆ¶ç´„を満ãŸã™ã€‚
æ¡ä»¶ã‚’満ãŸã™éƒ¨åˆ†æ–‡å—列ã®æ•°ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆã€‚
abcbcdbc abc
2
aaaaaa aaaaaa
0
baaaaaaaa b
8