poj2408 字符串处理,排序

来源:互联网 发布:windows bat关闭窗口 编辑:程序博客网 时间:2024/06/06 11:41
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>using namespace std;struct node{string a,b;}a[30005],g[30005];struct nod{string a,b;int n;}c[30005];bool Cmp(node a,node b){return a.a<b.a;}bool fum(nod a,nod b){return a.n>b.n;}bool fu(node a,node b){    if(a.b==b.b)        return a.a<b.a;return a.b<b.b;}bool fun(nod a,nod b){    if(a.n==b.n)        return a.a<b.a;return a.n>b.n;}int main(){   // freopen("1.txt","r",stdin);int i=0;string t;while(cin>>a[i].a){    t=a[i].a;    sort(t.begin(),t.end());    a[i].b=t;    i++;}sort(a,a+i,fu);int d=0;c[0].a=a[0].a;c[0].b=a[0].b;c[0].n=1;for(int k=1;k<i;k++){    if(a[k].b==c[d].b)        c[d].n++;    else{        c[++d].b=a[k].b;        c[d].a=a[k].a;        c[d].n=1;    }}sort(c,c+d+1,fun);/*for(int e=0;e<i;e++)    cout<<a[e].a<<endl;cout<<endl<<endl<<endl;for(int e=0;e<=d;e++)    cout<<c[e].a<<" "<<c[e].n<<endl;cout<<endl;*///for(int k=0;k<=d;k++)//cout<<c[k].a<<" "<<c[k].n<<endl;for(int e=0;e<5&&e<=d;e++){int u=c[e].n;printf("Group of size %d: ",u);int count=0;t="0000";for(int k=0;k<i&&count<=u;k++)    if(a[k].b==c[e].b){        if(a[k].a!=t)    cout<<a[k].a<<" ";    t=a[k].a;    count++;    }cout<<'.'<<endl;}}

1 0