zoukankan      html  css  js  c++  java
  • HDU-1225 Football Score 模拟问题(水题)

    题目链接:https://cn.vjudge.net/problem/HDU-1225

    水题

    代码

    #include <algorithm>
    #include <string>
    #include <cstdio>
    #include <map>
    using namespace std;
    struct Team{
    	int score[3];
    	string name;
    	Team(string name="", int s1=0, int s2=0, int s3=0):name(name) {
    		score[0]=s1; score[1]=s2; score[2]=s3;
    	}
    	bool operator < (const Team &a) const{
    		if (score[0]!=a.score[0]) return score[0]>a.score[0];
    		if (score[1]!=a.score[1]) return score[1]>a.score[1];
    		if (score[2]!=a.score[2]) return score[2]>a.score[2];
    		return name<a.name;
    	}
    }arr[1000+5];
    
    int main(void){
    	int n;
    	while (scanf("%d", &n)==1 && n){
    		map<string, int> getidx;
    		int size=0, end=n*(n-1), scores[2][3], s[2];
    		char teamname[2][1000];
    		for (int i=0; i<end; i++){
    			scanf("%s%*s%s%d:%d", teamname[0], teamname[1], &s[0], &s[1]);
    			
    			
    			if (s[0]==s[1]) scores[0][0]=scores[1][0]=1;
    			else if (s[0]>s[1]) scores[0][0]=3, scores[1][0]=0;
    			else scores[0][0]=0, scores[1][0]=3;
    			scores[0][1]=s[0]-s[1]; scores[0][2]=s[0];
    			scores[1][1]=s[1]-s[0]; scores[1][2]=s[1];
    			
    			for (int i=0; i<2; i++){
    				if (!getidx.count(teamname[i])){
    					getidx[teamname[i]]=size++;
    					arr[getidx[teamname[i]]]=Team(teamname[i], scores[i][0], scores[i][1], scores[i][2]);
    				}else for (int j=0; j<3; j++)
    					arr[getidx[teamname[i]]].score[j]+=scores[i][j];
    			}
    		}
    		sort(arr, arr+size);
    		for (int i=0; i<size; i++)
    			printf("%s %d
    ", arr[i].name.c_str(), arr[i].score[0]);
    		printf("
    ");
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    备用
    Python进阶
    *args 和 **kwargs
    C语言
    【Pythno库】-Re
    【C语言】-struct
    Django By Example
    字符串
    Python库
    【Keil】Keil5-改变字的大小和颜色
  • 原文地址:https://www.cnblogs.com/tanglizi/p/8424269.html
Copyright © 2011-2022 走看看