atcoder#AGC024F. [AGC024F] Simple Subsequence Problem
[AGC024F] Simple Subsequence Problem
配点 : 点
問題文
0
,1
からなる文字列からなる集合 と整数 が与えられます。
に属する異なる 個以上の文字列の部分列であるような最長の文字列を求めてください。
条件を満たすものが複数ある場合、辞書順で最小になるものを求めてください。
ただし、 は以下の形式で与えられます。
- 整数 と、 個の文字列が与えられる。 個の文字列は順に であり、全ての に対し、 の長さは である。
- どの整数の組 に対しても、 の 文字目(ただし、最初の文字を 文字目、最後の文字を 文字目とする)が
1
であることと、 を(必要なら最初に を補って) 桁からなる二進表記で表してできる文字列が に属することが同値である。 - 長さ 以上の文字列は、 には含まれない。
また、文字列 が 文字列 の部分列であるとは、ある整数列 が存在して、全ての に対し の 文字目と の 文字目が等しいことを指します。
制約
- の長さは であり、
0
と1
のみからなる - は整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
に属する異なる 個以上の文字列の部分列であるような最長の文字列のうち、辞書順最小のものを出力せよ。
3 4
1
01
1011
01001110
10
に属する文字列は、(空文字列),1
,00
,10
,11
,001
,100
,101
,110
です。
これらのうち つ以上の部分列となる最長の文字列のうち辞書順最小のものは、10
です。
4 6
1
01
1011
10111010
1101110011111101
100
2 5
0
11
1111
空文字列が答えになります。