11100 - The Trip, 2007

来源:互联网 发布:蜘蛛池程序源码 编辑:程序博客网 时间:2024/04/28 09:51
描述:大包套小包,最后会剩下几个包,而且剩下包的数量所包含的包的数量尽量平均,其实开始输入的包的数量最多的就是最后剩下的包的数量,然后依次递增这个数量输出就可以了#include <cstdio>#include <cstdlib>#include <cstring>#define N 10010int cmp(const void *p1,const void *p2){    return *(int *) p1 - *(int *) p2;}int num[N];int main(){    //freopen("a.txt","r",stdin);    int n,flag,sum,count=0;    while(scanf("%d",&n)!=EOF)    {        if(!n) break;        if(count) printf("\n");        for(int i=0; i<n; i++) scanf("%d",&num[i]);        qsort(num,n,sizeof(int),cmp);        flag=sum=1;        for(int i=0; i<n-1; i++)            if(num[i+1]==num[i])            {                sum++;                if(flag<sum) flag=sum;            }            else sum=1;        printf("%d\n",flag);        for(int i=0; i<flag; i++)        {            printf("%d",num[i]);            for(int j=i+flag; j<n; j+=flag)                printf(" %d",num[j]);            printf("\n");        }        count++;    }    return 0;}