P11838 [USACO25FEB] Printing Sequences B

题目描述

Bessie 正在学习使用一种简单的编程语言进行编程。她首先定义一个合法的程序,然后执行该程序以产生一些输出序列。 ### 定义: 一个程序是一个非空的语句序列。 一个语句的形式或者是 "PRINT $c$",其中 $c$ 是一个整数,或者是 "REP $o$",随后是一个程序,随后是 "END",其中 $o$ 是一个不小于 1 的整数。 ### 执行: 执行一个程序将依次执行其语句。 执行语句 "PRINT $c$" 将使 $c$ 追加到输出序列中。 执行以 "REP $o$" 开始的语句将依次执行内部程序共 $o$ 次。 Bessie 知道如何编写的一个程序示例如下。 ```plain REP 3 PRINT 1 REP 2 PRINT 2 END END ``` 该程序输出序列 $[1,2,2,1,2,2,1,2,2]$。 Bessie 想要输出一个包含 $N$($1 \le N \le 100$)个正整数的序列。Elsie 挑战她使用不超过 $K$($1 \le K \le 3$)个 "PRINT" 语句。注意,Bessie 可以使用任意数量的 "REP" 语句。同时注意,序列中的每个正整数都不超过 $K$。 对于 $T$($1 \le T \le 100$)个独立的测试用例中的每一个,求 Bessie 是否可以编写一个程序,使用至多 $K$ 个 "PRINT" 语句输出给定的序列。

输入格式

输出格式

说明/提示

样例 1 解释: 对于第二个测试用例,以下代码使用了 $1$ 个 "PRINT" 语句输出了序列 $[1,1,1,1]$。 ```plain REP 4 PRINT 1 END ``` 样例 2 解释: 对于第一个测试用例,以下代码使用了 $2$ 个 "PRINT" 语句输出了序列 $[1,2,2,2]$。 ```plain PRINT 1 REP 3 PRINT 2 END ``` 对于第二个测试用例,答案是 "NO",因为使用不超过 $2$ 个 "PRINT" 语句输出序列 $[1,1,2,1]$ 是不可能的。 对于第六个测试用例,以下代码使用了 $3$ 个 "PRINT" 语句输出了序列 $[3,3,1,2,2,1,2,2]$。 ```plain REP 2 PRINT 3 END REP 2 PRINT 1 REP 2 PRINT 2 END END ``` - 测试点 $3$:$K=1$。 - 测试点 $4\sim 7$:$K \le 2$。 - 测试点 $8\sim 13$:没有额外限制。