统一校准
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
统一校准
题目背景
一台旧温度计的校准表出了问题:它每次显示某个读数 时,真实读数其实都应该是同一个值 。
现在你只来得及修正一种错误读数。
题目描述
给定一个长度为 的整数序列 ,表示按时间顺序记录的读数。
正常情况下,读数应当是非降的,也就是说对于所有 ,都应满足:
你可以不进行任何操作。
也可以选择一个在原序列中出现过的整数 ,再选择一个整数 ,将序列中所有等于 的元素一次性全部改成 。
其中 必须满足:
请判断,是否可以通过至多一次这样的校准,使整个序列变成非降序列。
输入格式
第一行输入一个整数 ,表示测试数据组数。
对于每组测试数据:
第一行输入一个整数 ,表示序列长度。
第二行输入 个整数 ,表示读数序列。
数据范围
对于所有测试数据,保证:
所有测试数据的 之和不超过 。
所有输入数据均为整数。
输出格式
对于每组测试数据,输出一行。
如果可以完成校准,使整个序列变成非降序列,输出 YES。
否则输出 NO。
输入输出样例 #1
输入 #1
6
4
1 5 3 4
4
4 1 3 2
5
2 1 2 1 2
5
1 3 2 3 4
4
5 4 5 4
3
1 2 3
输出 #1
YES
NO
YES
YES
YES
YES
说明/提示
对于第一组数据,可以把所有 改成 ,得到:
1 3 3 4
序列变成非降序列,因此输出 YES。
对于第二组数据,无论选择哪一种读数统一修改,都无法让序列变成非降序列,因此输出 NO。
对于第三组数据,可以把所有 改成 ,得到:
1 1 1 1 1
因此输出 YES。
对于第四组数据,可以把所有 改成 ,得到:
1 2 2 2 4
因此输出 YES。
对于第五组数据,可以把所有 改成 ,得到:
4 4 4 4
因此输出 YES。
对于第六组数据,原序列已经是非降序列,不需要进行操作,因此输出 YES。