N 個の 1 次式 y = a_i x (1 \leq i \leq N) が与えられます。
1, 2, ..., N の部分列 s_1, s_2, ..., s_k (i < j ならば s_i < s_j) を考えます。まず式 s_1 を x = 1 として評価することから始め、式 s_i を評価した結果を式 s_{i+1} に x として入力することを考えます。すなわち以下のようになります。
このとき、x_k が最大となるような部分列を求めてください。ただし、そのような部分列が複数考えられる場合は列の長さが最小のものを求めるとします。また、さらにそのような部分列が複数考えられる場合は辞書順最小のものを求めるとします。ただし、部分列 s_1, s_2, ..., s_m が t_1, t_2, ..., t_n より辞書順で小さいとは以下のいずれかの場合を指します。
N a_1 a_2 $\cdots$ a_N
1 行目には部分列の長さ k を出力してください。 1+i 行目には部分列の i 番目、すなわち s_i を出力してください。
4 2 0 -2 1
1 1
式 1 のみを評価して最大値 2 を得ます。式 4 を評価する必要はありません。
3 2 -2 -2
3 1 2 3
全ての式を評価して最大値 8 を得ます。
2 -1 0
0
何も評価せず最大値 1 を得ます。空列は全ての列の中で個数最小かつ辞書順最小です。
5 -1 2 1 -2 -1
3 1 2 4
最大値は 4 です。$\langle$ 2, 4, 5 $\rangle$ は辞書順最小ではありません。