http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=1§ionid=3&problemid=12
#include<bits/stdc++.h>
using namespace std;
struct node{
int a,b;
char c[20];
};node g[1000];
bool cmp(node x,node y){
if(x.a!=y.a) return x.a>y.a;
if(x.b!=y.b) return x.b<y.b;
return strcmp(x.c,y.c)<0;
}
char s[15];
int time(int m)
{
if(s[0]=='-'||s[0]=='0') return 0;
int i,ans=0,sum=0;
int n=strlen(s);
for(i=0;i<n;i++)
{
if(s[i]=='(') break;
ans=ans*10+s[i]-'0';
}
for(i++;i<n-1;i++) sum=sum*10+s[i]-'0';
return sum*m+ans;
}
int main()
{
int i,j,k,ans,m,n,t,tt=0,tmp;
while(~scanf("%d%d",&n,&m))
{
memset(g,0,sizeof(g));
k=0;
while(~scanf("%s",&g[k++].c))
{
for(i=0;i<n;i++)
{
scanf("%s",&s);
tmp=time(m);
if(tmp) g[k-1].a++;
g[k-1].b+=tmp;
}
}k--;
sort(g,g+k,cmp);
for(i=0;i<k;i++)
printf("%-10s %2d %4d\n",g[i].c,g[i].a,g[i].b);
}
return 0;
}