atcoder#AGC052A. [AGC052A] Long Common Subsequence

[AGC052A] Long Common Subsequence

配点 : 400400

問題文

33 つの 0101 文字列 S1,S2,S3S_1, S_2, S_3 が与えられます。これらはそれぞれ、01NN 個ずつ含みます。

長さ 2N+12N+10101 文字列であって、S1+S1,S2+S2,S3+S3S_1 + S_1, S_2 + S_2, S_3 + S_3 のいずれの部分列でもあるものを 11 つ求めてください(s+ts+t は文字列 s,ts, t をこの順に連結したものを表します)。この問題の制約の下では、そのような文字列が常に存在することが保証されます。

ここで、文字列 BB が文字列 AA の部分列であるとは、AA から 00 文字以上を取り除き、残りの文字を順番を変えずに連結することで BB を得ることができることを意味します。

テストケースは TT 個与えられるので、それぞれを解いてください。

制約

  • 1T1051 \le T \le 10^5
  • 1N1051\le N \le 10^5
  • SiS_i01NN 個ずつ含む 0101 文字列である。
  • 全テストケースにおける NN の総和は 10510^5 以下である。

入力

入力は以下の形式で標準入力から与えられる。 入力の 11 行目は次の通りである。

TT

そして、それぞれ以下の形式で TT 個のテストケースが続く。

NN

S1S_1

S2S_2

S3S_3

出力

各テストケースについて、長さ 2N+12N+10101 文字列であって、S1+S1,S2+S2,S3+S3S_1 + S_1, S_2 + S_2, S_3 + S_3 のいずれの部分列でもあるようなものをいずれか 11 つ出力せよ。 そのような文字列が複数存在するときは、いずれを出力してもよい。

2
1
01
01
10
2
0101
0011
1100
010
11011

11 個目のケースでは、0100101, 0101, 1010 の部分列です。

22 個目のケースでは、1101101010101, 00110011, 11001100 の部分列です。