LRC and VIP

cpp 复制代码
//首先排除所有数相等的情况,再把最大值放在一个组,那么最大值的gcd就等于其本身,再判断剩下的gcd是否等于最大值就可以了
#include<bits/stdc++.h>
using namespace std;
 
const int N=1e3+100;
int a[N];
map<int,int>mapp;
int main(){
  int t;
  cin>>t;
  while(t--){
  	int n;
  	cin>>n;
  	mapp.clear();
  	int maxn=-1;
  	for(int i=1;i<=n;i++){
  		cin>>a[i];
  		mapp[a[i]]++;
  		maxn=max(maxn,a[i]);
	  }
	  
	  if(mapp[maxn]==n){
	  	cout<<"NO"<<endl;
	  }else{
	  	int num=a[1];
	  	int flag=0;
	  	int x;
	  	for(int i=2;i<=n;i++){
	  		if(a[i]==maxn){
	  			flag=1;
	  			x=i;
	  			continue;
	  			
			  }
	  		num=__gcd(num,a[i]);
		  }
	      if(num!=maxn){
	      	cout<<"YES"<<endl;
	      	int u=0;
	      	for(int i=1;i<=n;i++){
	      		if(a[i]==maxn){
	      			u=1;
	      			cout<<2<<" ";
	      			continue;
				  }
		  	cout<<1<<" ";
		  }
		   
		  cout<<endl;
		  }else{
		  	cout<<"NO"<<endl;
		  }
		   
	  }
  }
} 
相关推荐
Nie_Xun2 小时前
ROS1 go2 vlp16 局部避障--3 篇
算法
无敌最俊朗@5 小时前
C++ 序列容器深度解析:vector、deque 与 list
开发语言·数据结构·数据库·c++·qt·list
Da Da 泓5 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
未知陨落5 小时前
LeetCode:68.寻找两个正序数组的中位数
算法·leetcode
Humbunklung6 小时前
VC++ 使用OpenSSL创建RSA密钥PEM文件
开发语言·c++·openssl
Humbunklung6 小时前
填坑:VC++ 采用OpenSSL 3.0接口方式生成RSA密钥
开发语言·c++·rsa·openssl 3.0
Larry_Yanan6 小时前
QML学习笔记(十五)QML的信号处理器(MouseArea)
c++·笔记·qt·学习·ui
努力学习的小廉7 小时前
我爱学算法之—— 模拟(下)
c++·算法
Larry_Yanan7 小时前
QML学习笔记(十七)QML的属性变更信号
javascript·c++·笔记·qt·学习·ui
海琴烟Sunshine8 小时前
Leetcode 26. 删除有序数组中的重复项
java·算法·leetcode