#4982. Problem 3. Printing Sequences
0
Problem 3. Printing Sequences
Problem 3. Printing Sequences
USACO 2025 February Contest, Bronze
Bessie 正在学习使用一种简单的编程语言进行编程。她首先定义一个合法的程序,然后执行该程序以产生一些输出序列。
定义:
- 一个程序是一个非空的语句序列。
- 一个语句的形式或者是 "PRINT ",其中 是一个整数,或者是 "REP ",随后是一个程序,随后是 "END",其中 是一个不小于 1 的整数。
执行:
- 执行一个程序将依次执行其语句。
- 执行语句 "PRINT " 将使 追加到输出序列中。
- 执行以 "REP " 开始的语句将依次执行内部程序共 次。
Bessie 知道如何编写的一个程序示例如下。
REP 3
PRINT 1
REP 2
PRINT 2
END
END
该程序输出序列 。
Bessie 想要输出一个包含 ()个正整数的序列。Elsie 挑战她使用不超过 ()个 "PRINT" 语句。注意,Bessie 可以使用任意数量的 "REP" 语句。同时注意,序列中的每个正整数都不超过 。
对于 ()个独立的测试用例中的每一个,求 Bessie 是否可以编写一个程序,使用至多 个 "PRINT" 语句输出给定的序列。
输入格式(从终端 / 标准输入读入):
输入的第一行包含 。
每一个测试用例的第一行包含空格分隔的两个整数 和 。
每一个测试用例的第二行包含一个由 个空格分隔的正整数组成的序列,每个数都不超过 ,为 Bessie 想要产生的序列。
输出格式(输出至终端 / 标准输出):
对于每一个测试用例输出一行,包含 "YES" 或 "NO"(大小写敏感)。
输入样例:
2 1 1 1 4 1 1 1 1 1
输出样例:
YES YES
对于第二个测试用例,以下代码使用了 个 "PRINT" 语句输出了序列 。
REP 4
PRINT 1
END
输入样例:
11 4 2 1 2 2 2 4 2 1 1 2 1 4 2 1 1 2 2 6 2 1 1 2 2 1 1 10 2 1 1 1 2 2 1 1 1 2 2 8 3 3 3 1 2 2 1 2 2 9 3 1 1 2 2 2 3 3 3 3 16 3 2 2 3 2 2 3 1 1 2 2 3 2 2 3 1 1 24 3 1 1 2 2 3 3 3 2 2 3 3 3 1 1 2 2 3 3 3 2 2 3 3 3 9 3 1 2 2 1 3 3 1 2 2 6 3 1 2 1 2 2 3
输出样例:
YES NO YES NO YES YES YES YES YES NO NO
对于第一个测试用例,以下代码使用了 个 "PRINT" 语句输出了序列 。
PRINT 1
REP 3
PRINT 2
END
对于第二个测试用例,答案是 "NO",因为使用不超过 个 "PRINT" 语句输出序列 是不可能的。
对于第六个测试用例,以下代码使用了 个 "PRINT" 语句输出了序列 。
REP 2
PRINT 3
END
REP 2
PRINT 1
REP 2
PRINT 2
END
END
测试点性质: 测试点 3:。测试点 4-7:。测试点 8-13:没有额外限制。
供题:Alex Liang