問題文
長さ N の英小文字からなる文字列 S が与えられます。S を 2 個以上の連続部分文字列に分割し、それらが辞書順で狭義単調増加になるようにすることが出来るか判定してください。
厳密に書くと、以下の条件を全て満たす文字列の列 t=(t1,t2,dots,tk) が存在するか判定してください。
-
列の長さ k は 2 以上である。
-
ti は空でない。(1leilek)
-
t1,t2,dots,tk をこの順で連結すると S と一致する。
-
1lei<k を満たす整数 i に対して、ti は ti+1 より辞書順で小さい。
T 個のテストケースが与えられるので、それぞれについて答えを求めてください。
辞書順とは?
文字列 S=S1S2ldotsS∣S∣ が文字列 T=T1T2ldotsT∣T∣ より辞書順で小さいとは、下記の 1. と 2. のどちらかが成り立つことを言います。 ここで、∣S∣,∣T∣ はそれぞれ S,T の長さを表します。
- ∣S∣lt∣T∣ かつ S1S2ldotsS∣S∣=T1T2ldotsT∣S∣。
- ある整数 1leqileqminlbrace∣S∣,∣T∣rbrace が存在して、下記の 2 つがともに成り立つ。
- S1S2ldotsSi−1=T1T2ldotsTi−1
- Si が Ti よりアルファベット順で小さい文字である。
制約
- 1leTle2000
- 2leNle2000
- S は長さ N の英小文字からなる文字列
- 1 個の入力に含まれるテストケースについて、それらの N の総和は 2000 を超えない。
入力
入力は以下の形式で標準入力から与えられる。
T
mathrmcase1
mathrmcase2
vdots
mathrmcaseT
ここで、mathrmcasei とは i 個目のテストケースである。各テストケースは以下の形式で与えられる。
N
S
出力
T 行出力せよ。
i(1leileT) 行目には、i 個目のテストケースにおいて S を条件を満たすように分割できるならば Yes
を、そうでないならば No
を出力せよ。
入力例 1
5
4
abac
3
cac
2
ab
12
abababababab
5
edcba
出力例 1
Yes
No
Yes
Yes
No
1 個目のテストケースは、S を a
,ba
,c
と分割すればよいです。
2 個目のテストケースは、S をどのように分割しても辞書順で狭義単調増加にすることは出来ません。