CF1107A.Digits Sequence Dividing

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a sequence ss consisting of nn digits from 11 to 99 .

You have to divide it into at least two segments (segment — is a consecutive sequence of elements) (in other words, you have to place separators between some digits of the sequence) in such a way that each element belongs to exactly one segment and if the resulting division will be represented as an integer numbers sequence then each next element of this sequence will be strictly greater than the previous one.

More formally: if the resulting division of the sequence is t1,t2,,tkt_1, t_2, \dots, t_k , where kk is the number of element in a division, then for each ii from 11 to k1k-1 the condition ti<ti+1t_{i} < t_{i + 1} (using numerical comparing, it means that the integer representations of strings are compared) should be satisfied.

For example, if s=654s=654 then you can divide it into parts [6,54][6, 54] and it will be suitable division. But if you will divide it into parts [65,4][65, 4] then it will be bad division because 65>465 > 4 . If s=123s=123 then you can divide it into parts [1,23][1, 23] , [1,2,3][1, 2, 3] but not into parts [12,3][12, 3] .

Your task is to find any suitable division for each of the qq independent queries.

输入格式

The first line of the input contains one integer qq ( 1q3001 \le q \le 300 ) — the number of queries.

The first line of the ii -th query contains one integer number nin_i ( 2ni3002 \le n_i \le 300 ) — the number of digits in the ii -th query.

The second line of the ii -th query contains one string sis_i of length nin_i consisting only of digits from 11 to 99 .

输出格式

If the sequence of digits in the ii -th query cannot be divided into at least two parts in a way described in the problem statement, print the single line "NO" for this query.

Otherwise in the first line of the answer to this query print "YES", on the second line print kik_i — the number of parts in your division of the ii -th query sequence and in the third line print kik_i strings ti,1,ti,2,,ti,kit_{i, 1}, t_{i, 2}, \dots, t_{i, k_i} — your division. Parts should be printed in order of the initial string digits. It means that if you write the parts one after another without changing their order then you'll get the string sis_i .

See examples for better understanding.

输入输出样例

  • 输入#1

    4
    6
    654321
    4
    1337
    2
    33
    4
    2122
    

    输出#1

    YES
    3
    6 54 321
    YES
    3
    1 3 37
    NO
    YES
    2
    21 22
    
首页