已经输出的数字和相同,
一共输出k行,每一行的第一个数代表着要输出几个数
#include<cstdio>
#include<algorithm>
using namespace std;
int num[60];
void print(int pos)
{
int i;
printf("%d ",pos+1);
for(i=1;i<=pos;++i)
printf("%d ",num[i]);
}
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,k;
while(~scanf("%d%d",&n,&k))
{
int i,temp;
for(i=1;i<=n;++i)
scanf("%d",&num[i]);
sort(num+1,num+n+1,cmp);
int tag=0,j;
for(i=1;i<=n&&tag<k;++i,++tag)
printf("%d %d\n",1,num[i]);
i=1;
while(tag<k)
{
for(j=1;i+j<=n;++j)
{
if(tag>=k)
break;
print(i);
printf("%d\n",num[i+j]);
++tag;
}
++i;
}
}
return 0;
}