atcoder#AGC052D. [AGC052D] Equal LIS
[AGC052D] Equal LIS
配点 : 点
問題文
から までの整数を並べ替えた列 が与えられます。 これを、最長増加部分列の長さが等しいような つの部分列に分けることは可能でしょうか。
形式的に述べると、目標は以下の条件を全て満たす つの整数列 を得ることです。
- はともに の部分列である。
- 各整数 は のいずれかちょうど一方に現れる。
- ( の最長増加部分列の長さ) ( の最長増加部分列の長さ)
目標が達成可能か判定してください。
テストケースは 個与えられるので、それぞれを解いてください。
制約
- は から までの整数を並べ替えた列である。
- 全テストケースにおける の総和は 以下である。
入力
入力は以下の形式で標準入力から与えられる。 入力の 行目は次の通りである。
そして、それぞれ以下の形式で 個のテストケースが続く。
出力
各テストケースについて、与えられた並びを最長増加部分列の長さが等しいような つの部分列に分けることが可能なら YES
、そうでなければ NO
と出力せよ。
行につき 個のテストケースへの出力を行え。
なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。
5
1
1
2
2 1
3
1 2 3
5
1 3 5 2 4
6
2 3 4 5 6 1
NO
YES
NO
YES
NO
を と に分けると、両者とも最長増加部分列の長さが となります。
については、最長増加部分列の長さが等しいような つの部分列に分けることは不可能であることが示せます。