题目大意:中文题。读者可直接去OJ上看。


解题思路:水题。直接做就行


代码如下:


/*
 * 2093_2.cpp
 *
 *  Created on: 2013年8月10日
 *      Author: Administrator
 */

#include <iostream>
#include <algorithm>

using namespace std;

struct Node{
	char name[10];
	int num;
	int useTime;
};

bool compare( const Node& a , const Node& b){
	if(a.num != b.num){
		return a.num > b.num;
	}else{
		if(a.useTime != b.useTime){
			return a.useTime < b.useTime;
		}else{
			return a.name > b.name;
		}
	}
}

int main(){

	int n,m;
	scanf("%d%d",&n,&m);
	Node ps[1000];
	int i = 0 ;
	while(scanf("%s",ps[i].name)!=EOF ){
		ps[i].num = 0;
		ps[i].useTime = 0;
		int j ;
		for( j = 0 ; j < n ; ++j){
			int a;
			cin >>a;
			if(a>0){
				ps[i].num++;
				ps[i].useTime += a;

				if(getchar() == '('){
					cin >> a;
					ps[i].useTime += a*m;
					getchar();
				}
			}
		}

		++i;
	}

	sort(ps,ps+i,compare);
	int k;
	for(k = 0 ; k < i ; ++k){
		printf("%-10s %2d %4d\n",ps[k].name,ps[k].num,ps[k].useTime);
	}
	return 0;
}