æ–‡å—列$s$,$t$ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
最åˆã€æ–‡å—列集åˆ$A=${$s$},$B=\phi$ã¨ã™ã‚‹ã€‚
ã“ã®ã¨ãã€æ¬¡ã®æ“作をã§ãã‚‹ã ã‘ãŸãã•ã‚“è¡Œã„ãŸã„。
"abac"ã®éƒ¨åˆ†åˆ—ã¯ã€
{ "" , "a" , "b" , "c" , "aa" ,"ab" , "ac" , "ba" , "bc" , "aac" , "aba" , "abc" , "bac" , "abac" }
ã§ã‚る。
"a"ã¯"abac"ã®1æ–‡å—ç›®ã€ã¾ãŸã¯3æ–‡å—目を抜ã出ã™ã“ã¨ã«ã‚ˆã£ã¦ã§ããŸéƒ¨åˆ†åˆ—ã§ã‚る。
"ac"ã¯"abac"ã®1æ–‡å—ç›®ã¨4æ–‡å—ç›®ã€ã¾ãŸã¯3æ–‡å—ç›®ã¨4æ–‡å—目を抜ã出ã™ã“ã¨ã«ã‚ˆã£ã¦ã§ããŸéƒ¨åˆ†åˆ—ã§ã‚る。
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
$s$ $t$
1行目ã«æ–‡å—列$s$,2行目ã«æ–‡å—列$t$ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
入力ã¯ä»¥ä¸‹ã®æ¡ä»¶ã‚’満ãŸã™ã€‚
æ“作回数ã®æœ€å¤§å€¤ã‚’出力ã›ã‚ˆã€‚
AABABCAC A
2
1回目ã®æ“作ã¯ã€$A=${ "AABABCAC" }ã§å§‹ã¾ã‚‹ã€‚
step1ã§ã¯ã€$u=$"AABABCAC"ã«å¯¾ã—ã¦ã€ä¾‹ãˆã°4番目ã®æ–‡å—ã‚’$t$ã¨ç‰ã—ã„部分列ã¨ã—ã¦é¸ã³ã€"AAB"ã¨"BCAC"ã«åˆ†å‰²ã—ã€ãれらを$B$ã«è¿½åŠ ã™ã‚‹ã€‚
step2ã§ã¯ã€$A$ã‚’$B$ã«ç½®ãæ›ãˆã€$B$を空ã«ã—ã€æ“作回数ã¯1ã¨ãªã‚‹ã€‚
2回目ã®æ“作ã¯ã€$A=${ "AAB" , "BCAC" }ã§å§‹ã¾ã‚‹ã€‚
step1ã§ã¯ã€$u=$"AAB"ã«å¯¾ã—ã¦ã€ä¾‹ãˆã°1番目ã®æ–‡å—ã‚’$t$ã¨ç‰ã—ã„部分列ã¨ã—ã¦é¸ã³ã€""ã¨"AB"ã«åˆ†å‰²ã—ã€ãれらを$B$ã«è¿½åŠ ã™ã‚‹ã€‚次ã«$u=$"BCAC"ã«å¯¾ã—ã¦ã€3番目ã®æ–‡å—ã‚’$t$ã¨ç‰ã—ã„部分列ã¨ã—ã¦é¸ã³ã€"BC"ã¨"C"ã«åˆ†å‰²ã—ã€ãれらを$B$ã«è¿½åŠ ã™ã‚‹ã€‚
step2ã§ã¯ã€$A$ã‚’$B$ã«ç½®ãæ›ãˆã€$B$を空ã«ã—ã€æ“作回数ã¯2ã¨ãªã‚‹ã€‚
3回目ã®æ“作ã¯ã€$A=${ "" , "AB" , "BC" , "C" }ã§å§‹ã¾ã‚‹ã€‚
step1ã§ã¯ã€$u=$""ã«å¯¾ã—ã¦ã€$t$ã¨ç‰ã—ã„部分列ãŒå˜åœ¨ã—ãªã„ãŸã‚ã€ã“ã“ã§æ“作を終了ã™ã‚‹ã€‚
ã“ã®ä¾‹ã®å ´åˆã€3回目ã®æ“作ã§ã¯step1ã§æ“作ãŒçµ‚了ã—ãŸãŸã‚ã€æ“作回数ã¯2ã¨ãªã‚‹ã€‚
abaabbabaabaabbabbabaabbab ab
3
AbCdEfG aBcDeFg
0