問題一覧 > 通常問題

No.2107 Entangled LIS

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 10
作問者 : Sumitacchan / テスター : hitonanode 👑 ygussany
1 ProblemId : 8330 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-10-08 11:14:03

問題文

a,b からなる長さ NN の文字列 s=s1s2sNs=s_1s_2\dots s_N と正整数 A,BA,B が与えられます。

次の条件を全て満たすような、長さ NN の整数列の組 a=(a1,a2,,aN),b=(b1,b2,,bN)a=(a_1,a_2,\dots,a_N),b=(b_1,b_2,\dots,b_N) は存在するでしょうか。

  • 2N2N 個の整数 a1,a2,,aN,b1,b2,,bNa_1,a_2,\dots,a_N,b_1,b_2,\dots,b_N には 11 以上 2N2N 以下の整数が 11 個ずつ含まれる。
  • 整数列 a=(a1,a2,,aN)a=(a_1,a_2,\dots,a_N) の最長増加部分列の長さは AA である。
  • 整数列 b=(b1,b2,,bN)b=(b_1,b_2,\dots,b_N) の最長増加部分列の長さは BB である。
  • i=1,2,,Ni=1,2,\dots,N のそれぞれに対して、si=s_i= a ならば ai>bia_i > b_i であり、si=s_i= b ならば ai<bia_i < b_i である。

存在するならば、そのような整数列の組 a,ba,b を一つ示してください。

一つの入力につき、TT 個のテストケースに答えてください。

制約

  • 1T2×1041 \le T \le 2 \times 10^4
  • 1N2×1051 \le N \le 2 \times 10^5
  • 1A,BN1 \le A,B \le N
  • T,N,A,BT,N,A,B は整数である。
  • ssa,b からなる長さ NN の文字列である。
  • 一つの入力に含まれる TT 個のテストケースにおいて、NN の総和は 2×1052\times10^5 以下である。

入力

まず 11 行目に、入力に含まれるテストケースの数 TT が与えられます。

TT

その後、2T2T 行にわたって TT 個のテストケースが与えられます。各テストケースは次の形式で 22 行にわたって与えられます。

N  A  BN\ \ A\ \ B
ss

出力

各テストケースに対する回答を順番に以下の通りに出力し、テストケースごとに改行してください。

  • 条件を満たす整数列の組 a,ba,b が存在しない場合は No を出力してください。
  • 存在する場合は、Yes および a,ba,b を次の形式で出力してください(条件を満たす a,ba,b が複数存在する場合はいずれを出力しても構いません)。
    Yes
    a1  a2    aNa_1\ \ a_2\ \ \cdots\ \ a_N
    b1  b2    bNb_1\ \ b_2\ \ \cdots\ \ b_N

サンプル

サンプル1
入力
3
4 3 2
bbaa
2 2 1
ab
5 5 5
bbbbb
出力
Yes
1 7 5 6
3 8 4 2
No
Yes
1 2 3 4 5
6 7 8 9 10

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。