atcoder#ARC132D. [ARC132D] Between Two Binary Strings

[ARC132D] Between Two Binary Strings

配点 : 700700

問題文

文字列の 美しさ を、その文字列のなかで同じ 22 文字が隣り合っている位置の個数として定義します。 例えば、00011 の美しさは 33 で、10101 の美しさは 00 です。

Sn,mS_{n,m}nn 文字の 0mm 文字の 1 からなる長さ n+mn+m の文字列全体の集合とします。

s1,s2Sn,ms_1,s_2 \in S_{n,m} について、s1,s2s_1,s_2距離 d(s1,s2)d(s_1,s_2) を 「隣り合った 22 文字を入れ替える操作によって文字列 s1s_1 を文字列 s2s_2 に並び替えるのに必要な最小の操作回数」 と定義します。

また、s1,s2,s3Sn,ms_1,s_2,s_3\in S_{n,m} について、s2s_2s1s_1s3s_3間にある ことを、d(s1,s3)=d(s1,s2)+d(s2,s3)d(s_1,s_3)=d(s_1,s_2)+d(s_2,s_3) で定義します。

s,tSn,ms,t\in S_{n,m} が与えられるので、sstt の間にある文字列の美しさの最大値を出力してください。

制約

  • 2n+m3×1052 \le n + m\le 3\times 10^5
  • 0n,m0 \le n,m
  • s,ts,tnn 文字の 0mm 文字の 1 からなる長さ n+mn+m の文字列

入力

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

nn mm

ss

tt

出力

sstt の間にある文字列の美しさの最大値を出力せよ。

2 3
10110
01101
2

1011001101 の距離は 22 で、これらの間にある文字列は、10110, 01110, 01101, 10101 です。 それぞれの美しさは 1,2,1,01,2,1,0 であるため、答えは 22 です。

4 2
000011
110000
4

000011110000 の距離は 88 です。 美しさが最大になる文字列は 000011110000 で、答えは 44 です。

12 26
01110111101110111101001101111010110110
10011110111011011001111011111101001110
22