#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct Node
{
char name[20];
int sum;
int cnt;
}a[5005];
bool cmp(Node a,Node b)
{
if(a.cnt!=b.cnt)
return a.cnt>b.cnt;
else if(a.cnt==b.cnt)
return a.sum<b.sum;
else
return strcmp(a.name,b.name)<0;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int k=0;
char sc[20];
while(~scanf("%s",a[k].name))
{
a[k].sum=0; a[k].cnt=0;
for(int i=0;i<n;i++)
{
scanf("%s",sc);
if(sc[0]=='-'||sc[0]=='0')
continue;
a[k].cnt++;
int s=0,j=0;
if(!strstr(sc,"("))
{
while(sc[j])
{
s=s*10+(sc[j]-'0');
j++;
}
a[k].sum+=s;
continue;
}
while(sc[j]!='(')
{
s=s*10+(sc[j]-'0');
j++;
}
a[k].sum+=s;
s=0;
j++;
while(sc[j]!=')')
{
s=s*10+(sc[j]-'0');
j++;
}
a[k].sum+=s*m;
}
k++;
}
sort(a,a+k,cmp);
for(int i=0;i<k;i++)
{
printf("%-10s %2d %4d\n",a[i].name,a[i].cnt,a[i].sum);
}
}
HDU2093结构体(排序)
最新推荐文章于 2020-09-10 19:18:10 发布