atcoder#ABC261G. [ABC261G] Replace
[ABC261G] Replace
配点 : 点
問題文
英小文字のみからなる つの文字列 が与えられます。
高橋君は文字列 から始めて、 次の 種類の操作のうち つを選んで行う事を 好きなだけ繰り返す事ができます。 番目の操作は次の形で与えられます。
コストを 支払う。 その後、文字列中に文字 が含まれるとき、そのうちの つを選び、文字列 に置き換える。 含まれないならば何も行わない。
文字列を と一致させるために必要な最小コストを求めてください。 ただし、 と一致させることが不可能な場合は を出力してください。
制約
- は
a
,b
,,z
のいずれか - は英小文字のみからなる文字列
- を長さ の文字列としてみた時、
- はすべて異なる。
入力
入力は以下の形式で標準入力から与えられる。
出力
を と一致させるために必要な最小コストを出力せよ。 ただし、 と一致させることが不可能な場合は を出力せよ。
ab
cbca
3
a b
b ca
a efg
4
高橋君は ab
から始めて、次のように 回操作を行う事で、
cbca
を作ることができます。
ab
の 文字目a
を選んでb
に置き換える ( 番目の操作) 。文字列はbb
となる。bb
の 文字目b
を選んでca
に置き換える ( 番目の操作) 。文字列はbca
となる。bca
の 文字目b
を選んでca
に置き換える ( 番目の操作) 。文字列はcaca
となる。caca
の 文字目a
を選んでb
に置き換える ( 番目の操作) 。文字列はcbca
となる。
各操作においてコストが かかるため、必要なコストは となり、このときが最小です。
a
aaaaa
2
a aa
a aaa
2
a
aaa
aaaaa
とした時、必要なコストは となり、
このときが最小です。
a
z
1
a abc
-1
どのように操作を行っても、a
から z
を作る事は出来ません。