2024-07-16 21:03阅读: 4评论: 0推荐: 0

CF1859A题解

CF1859A题解

思路

考虑一种极端情况,b 数组内的数全部比 a 大,这样也无法整除,所以这就是这道题的突破口。我们让 b 数组内的数全部比 a 里的大,最方便的实现方法就是把原数组内的最大的数放进 b 数组,剩下的放进 a 数组。注意特判无解情况:原数组内的数一样,这样 b 数组全部是最大数,a 数组就空了。

代码

#include<bits/stdc++.h>
using namespace std;
int a[10010];
int main() {
int T;
cin>>T;
while(T--) {
int n;
cin>>n;
int mx=0;
for(int i=1;i<=n;i++) {
cin>>a[i];
mx=max(mx,a[i]);
}
int cnt=0;
for(int i=1;i<=n;i++) {
if(a[i]==mx) cnt++;
}
if(cnt==n) {
cout<<-1<<"\n";
continue;
}
cout<<n-cnt<<" "<<cnt<<"\n";
for(int i=1;i<=n;i++) {
if(a[i]!=mx) cout<<a[i]<<" ";
}
cout<<'\n';
for(int i=1;i<=n;i++) {
if(a[i]==mx) cout<<a[i]<<" ";
}
cout<<"\n";
}
return 0;
}

本文作者:merlinkkk

本文链接:https://www.cnblogs.com/merlinkkk/p/18306109

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   merlinkkk  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开