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;
}
posted @ 2024-07-16 21:03  merlinkkk  阅读(29)  评论(0)    收藏  举报