atcoder#PANASONIC2020E. Three Substrings

Three Substrings

配点 : 500500

問題文

すぬけ君は、文字列 ss を持っています。 あぬけ君、ぶぬけ君、くぬけ君は次のような方法でそれぞれ文字列 a,b,ca, b, c を得ました。

  • ss の空でない (ss 全体であってもよい) 連続な部分文字列を一つ選ぶ。その部分文字列のうちいくつかの文字 (00 個や全部であってもよい) を ? で置き換える。

たとえば、ssmississippi であるとき、部分文字列として ssissip を選び、その 1,31, 3 文字目を ? で置き換えることで ?s?ssip を得ることができます。

文字列 a,b,ca, b, c が与えられます。 ss の長さとして考えられる最小値を求めてください。

制約

  • 1a,b,c20001 \leq |a|, |b|, |c| \leq 2000
  • a,b,ca, b, c は英小文字と ? からなる。

入力

入力は以下の形式で標準入力から与えられる。

aa

bb

cc

出力

ss の長さとして考えられる最小値を出力せよ。

a?c
der
cod
7

たとえば、ssatcoder のとき条件を満たします。

atcoder
atcoder
???????
7

a,b,ca, b, c は相異なるとは限りません。