#620. 编程练习

编程练习

点击此处下载附加样例文件

题目描述

学习了循环语句后,老师给出了一道练习题,让同学们通过编程输出 TT 个给定的序列,其中第 ii 个序列包含 NiN_i 个元素,每个元素均为不超过指定值 MiM_i 的正整数。

通过认真观察,小明总能很快编写出程序,输出指定的序列。

例如:假设第 ii 个给定序列 Ni=8N_i = 8, Mi=2M_i = 2,序列为 {1,2,2,2,1,2,2,2}\{ 1, 2, 2, 2, 1, 2, 2, 2 \},则小明的程序段如下:

for(int i=1;i<=2;i++)
{
  cout<<1<<' ';
  for(int j=1;j<=3;j++)
    cout<<2<<' ';
}

小明觉得这个作业太容易了,于是他决定给自己加难度:

  • 对于每个 cout 语句,其后面只能紧跟输出一个整数;
  • 对于第 ii 个数列,他希望自己的程序中 cout 语句出现的次数也不超过 MiM_i

对于其他语句出现的次数则不作限制。

问:小明能否成功输出给定的序列?

输入格式

第一行:包含一个整数 TT

接下来是 TT 个序列的描述,每个序列的描述占两行,对于第 ii 个序列:

  • 第一行:两个整数 NiN_i, MiM_i
  • 第二行:NiN_i 个正整数,数据保证每个正整数都不超过 MiM_i

输出格式

TT 行,每个序列的答案占一行:对于第 ii 个序列,如果小明能成功输出该序列,则在第 ii 行输出 YES,否则输出 NO

输入样例

3
3 2
1 1 1
3 2
1 2 2
3 2
1 2 1

输出样例

YES
YES
NO

数据范围

100% 的数据:1T,Ni1001 ≤ T, N_i ≤ 100, 1Mi31 ≤ M_i ≤ 3。其中:

  • 10% 的数据:Mi=1M_i = 1
  • 20% 的数据:Mi2M_i ≤ 2