杭电考试排名

感受了下三层比较sort 

输入的巧妙之处  

如下

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>     
#include<algorithm>
using namespace std;
struct stu{
	char a[1000];
	int count=0;
	int time=0;
}A[1000];
bool cmp(stu a,stu b){
	if(a.count==b.count)
		return a.time<b.time ;	
	if(a.time==b.time )
		return a.a<b.a;
	return a.count>b.count ;
}
int main()
{
	int i,j,kk,k,m,n,sum=0,x;int p,t,l;
	char zou[1000],ch;
	scanf("%d%d",&n,&m);	
	k=0;
	while(scanf("%s",A[k].a)!=EOF)
	{
		for(i=0;i<n;i++)
		{
			scanf("%d",&t);
			if(t<=0)  ;
			else
			{
				A[k].time+=t;
				scanf("%c",&ch);
				if(ch=='('&&ch!=' ')
				{
					scanf("%d)",&l);
					A[k].time+=l*m;
				}
				A[k].count++;
			//	printf("%d\n",A[k].time);
			}	
		}
		k++;
	}
	sort(A,A+k+1,cmp);
	for(i=0;i<k;i++)
	printf("%-10s %2d %4d\n",A[i].a,A[i].count,A[i].time );
	return 0; 
}

猜你喜欢

转载自blog.csdn.net/weixin_43916298/article/details/86407846