CF c题

news/2024/11/24 6:56:13/

C. Make Equal With Mod

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given an array of nn non-negative integers a1,a2,…,ana1,a2,…,an. You can make the following operation: choose an integer x≥2x≥2 and replace each number of the array by the remainder when dividing that number by xx, that is, for all 1≤i≤n1≤i≤n set aiai to aimodxaimodx.

Determine if it is possible to make all the elements of the array equal by applying the operation zero or more times.

Input

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤1041≤t≤104) — the number of test cases. Description of the test cases follows.

The first line of each test case contains an integer nn (1≤n≤1051≤n≤105) — the length of the array.

The second line of each test case contains nn integers a1,a2,…,ana1,a2,…,an (0≤ai≤1090≤ai≤109) where aiai is the ii-th element of the array.

The sum of nn for all test cases is at most 2⋅1052⋅105.

Output

For each test case, print a line with YES if you can make all elements of the list equal by applying the operation. Otherwise, print NO.

You may print each letter in any case (for example, "YES", "Yes", "yes", "yEs" will all be recognized as a positive answer).

Example

input

Copy

4
4
2 5 6 8
3
1 1 1
5
4 1 7 0 8
4
5 9 17 5

output

Copy

YES
YES
NO
YES

Note

In the first test case, one can apply the operation with x=3x=3 to obtain the array [2,2,0,2][2,2,0,2], and then apply the operation with x=2x=2 to obtain [0,0,0,0][0,0,0,0].

In the second test case, all numbers are already equal.

In the fourth test case, applying the operation with x=4x=4 results in the array [1,1,1,1][1,1,1,1].

无1的时候一定可以 x取max(a[i[)

有1的时候每个数搞成1,x取max(a[i]-1),但不能有连续的,否则会有0,1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
const int maxn=1e5+5;
int a[maxn];
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>t;while(t--){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+1+n);bool flag1=false;bool flag2=false;for(int i=1;i<=n;i++){if(a[i]==1){flag1=true;break;}}for(int i=1;i<=n-1;i++){if(a[i+1]-a[i]==1){flag2=true;break;}}if(flag1==false||flag2==false){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0;
}
#include <bits/stdc++.h>#define int long longusing namespace std;typedef long long LL;void solve()
{int n;cin >> n;set<int> S;int cnt0 = 0, cnt1 = 0; // 统计0和1的数量for (int i = 0; i < n; i ++ ) {int x;cin >> x;S.insert(x);if (x == 1) cnt1 ++ ;if (x == 0) cnt0 ++ ;}if (cnt1 == 0) { // 第一种情况cout << "YES\n";} else if (cnt1 && cnt0) { // 第二种情况cout << "NO\n";} else { // 第三种情况for (auto x : S) {if (S.count(x + 1)) { // 判断是否有连续的两个数,这里采用了set判断cout << "NO\n";return; // 及时return}}cout << "YES\n";}
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin >> T;while (T -- ) {solve();}return 0;
}


http://www.ppmy.cn/news/942472.html

相关文章

CF-div4练习题

题目&#xff1a;Dashboard - Codeforces Round 640 (Div. 4) - CodeforcesCodeforces. Programming competitions and contests, programming communityhttps://codeforces.com/contest/1352 A&#xff1a;整数之和 题解&#xff1a; #include <bits/stdc.h>using nam…

cf交互题

链接 #include <iostream> #include <algorithm> using namespace std;const int N 1e4 10;int a[N], b[N];int main() {int n, k;scanf("%d %d", &n, &k);for(int i 1; i < n - 1; i) {printf("and %d %d\n", i, i1);fflush(s…

腾讯云买赠专区购买云服务器赠送3个月免费续费或同配置服务器!

腾讯云服务器买赠专区购买云服务器&#xff0c;可以选择免费再领一台同配置云服务器&#xff0c;也可以选择免费赠送时长&#xff0c;二选一&#xff0c;轻量应用服务器和云服务器CVM均可享受&#xff0c;买赠专区的云服务器价格要比秒杀区的价格稍微贵一些&#xff0c;但是如果…

腾讯云服务器的计费模式有哪些?新手该如何选择?

腾讯云提供三种类型的云服务器购买方式&#xff1a;包年包月、按量计费和竞价实例&#xff0c;分别适用于不同场景下的用户需求。 下表列出了三种计费模式的区别&#xff1a; 实例计费模式包年包月按量计费竞价实例付款方式预付费购买时 冻结费用&#xff0c;每小时结算购买时…

【云原生】k8s图形化管理工具之rancher

前言 在前面的k8s基础学习中&#xff0c;我们学习了各种资源的搭配运用&#xff0c;以及命令行&#xff0c;声明式文件创建。这些都是为了k8s管理员体会k8s的框架&#xff0c;内容基础。在真正的生产环境中&#xff0c;大部分的公司还是会选用图形化管理工具来管理k8s集群&…

基于linux下的高并发服务器开发(第二章)- 2.8 wait函数

04 / 进程回收 #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *wstatus); 功能&#xff1a;等待任意一个子进程结束&#xff0c;如果任意一个子进程结束了&#xff0c;次函数会回收子进程的 资源。 参数&…

Qt5.15.2安装

解释一下 Qt 的版本号 比如 5.15.2 是完整的 Qt 版本号&#xff0c;第一个数字 5 是大版本号&#xff08;major&#xff09;&#xff0c;第二个数字 15 是小版本号&#xff08;minor&#xff09;&#xff0c;第三个数字 2 是补丁号&#xff08;patch&#xff09;。 只要前面两个…

4. 设计(黑盒)测试用例 (一) 等价类 边界值 判定表

本篇文章我们将详细介绍如何来测试用例。 1. 设计测试用例的基本要素 1.1 测试用例概念 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 1.2 测试用例要素 测试环境、测试步骤、测试数据、预期结果。 1.3 测试用例的重要性 提…