球球了,#5#分求助,感觉没问题
查看原帖
球球了,#5#分求助,感觉没问题
1046226
Xuguangyuan楼主2025/7/26 19:46
#include<bits/stdc++.h>
using namespace std;
int n,m,t,k,a[1005],p,g[1005],l;
struct node{
int s,b;
}f[1005];
bool cmp(node a,node b)
{
    return a.s<b.s;
}
int main()
{
cin>>t;
while(t--){
cin>>n;
m=0;
k=0;
l=0;
p=0;
memset(a,0,sizeof(a));
memset(g,0,sizeof(g));
for(int i=1;i<=n;i++)
{
    cin>>a[i];
    f[i].b=a[i];
    f[i].s=1;
}
sort(1+a,1+a+n);
for(int i=1;i<=n;i++)
{
    if(a[i]==a[i-1]){
            f[i].s=f[i-1].s+1;
          f[i-1].s=0;

    }
}
sort(1+f,1+f+n,cmp);
if(n%2==1||f[n].s>n/2) {
    cout<<-1<<endl;
    continue;
}

m=f[n].s;
l=n;
cout<<m<<endl;
    for(int i=m-1;i>=1;i--)
    {
        p=0;
        for(int j=n;f[j].s>=1;j--)
        {
            g[p+1]=f[j].b;
            f[j].s--;
            p++;
            if(p%2==0&&f[j-1].s!=f[n].s+1)
            {

                break;
            }
        }
        l-=p;
        cout<<p<<" ";
        sort(1+g,1+g+p);
        for(int j=1;j<=p;j++){
            cout<<g[j]<<" ";
        }
        cout<<endl;
     sort(1+f,1+f+n,cmp);

    }
    p=0;
   cout<<l<<" ";
for(int j=n;f[j].s>=1;j--)
        {
            g[p+1]=f[j].b;
            f[j].s--;
            p++;

        }
 sort(1+g,1+g+p);
        for(int j=1;j<=p;j++){
            cout<<g[j]<<" ";
        }
   cout<<endl;
}



return 0;
}

```*~~$$~~*
2025/7/26 19:46
加载中...