打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
世界杯来了

题目描述

2018年俄罗斯世界杯结束了,法国获得冠军,全世界球迷度过了一个非常愉快的夏天。作为中国球迷,不能总是看别人踢球,这不福利来了,根据FIFA(国际足联)及全体成员协会的一致决定,2118年世界杯将在中国举办,作为东道主,中国队将无需参加预选赛而直接参加决赛阶段的比赛。

比赛规则如下:

总共n(n为偶数)个球队参加比赛

按照分组赛积分排名,前n/2的球队进入淘汰赛

积分排名的规则如下:球队获胜得3分,平局得1分,失利得0分,按照积分递减、净胜球递减以及进球数递减方式排名

编写一个程序,根据给出的参赛队伍名单和所有比赛的结果,找出成功进入淘汰赛阶段的球队名单。

【输入形式】

   第一行输入包含唯一整数n(1<=n<=50),参加世界杯决赛的球队数量。接下来的n行是各球队的名字,为长度不超过30个字符的英文字符。接下来的n*(n-1)/2行,每行格式name1-name2 num1:num2(0<=num1, num2<=100),表示对阵球队及比分. 

【输出形式】

   输入n/2行,表示进入淘汰赛阶段的球队,按照字典序进行排列,每个球队名字占一行。

【样例输入】

4
A
B
C
D
A-B 1:1
A-C 2:2
A-D 1:0
B-C 1:0
B-D 0:3
C-D 0:3

【样例输出】

A
D

AC代码

#include<iostream>#include<cstring>using namespace std;int main(){	int n;	cin>>n;	cin.get();	string str[n];	for(int i=0;i<n;i  ){		getline(cin,str[i]);	}	int m=n*(n-1)/2,a[n][3]={0};	while(m--){		string string,str1,str2;		char x;		int q1,q2,k=0;		cin>>string;		cin>>q1>>x>>q2;		for(int i=0;i<n;i  ){			if(string[i]=='-') {				k=i;				break;			}		}		int m=string.length();		str1=string.substr(0,k);		str2=string.substr(k 1,m-1);		for(int i=0;i<n;i  ){			if(str[i]==str1){				if(q1>q2) a[i][0]=a[i][0] 3;				if(q1==q2) a[i][0]=a[i][0] 1;				a[i][1]=a[i][1] q1-q2;				a[i][2]=a[i][2] q1;			} 			if(str[i]==str2){				if(q1<q2) a[i][0]=a[i][0] 3;				if(q1==q2) a[i][0]=a[i][0] 1;				a[i][1]=a[i][1] q2-q1;				a[i][2]=a[i][2] q2;			 } 		}	}	for(int i=0;i<n-1;i  ){		for(int j=i 1;j<n;j  ){			if(a[i][0]<a[j][0]){				string sw=str[i]; str[i]=str[j]; str[j]=sw;				int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;				 l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;				 l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;			}			if(a[i][0]==a[j][0]){				if(a[i][1]<a[j][1]){					string sw=str[i]; str[i]=str[j]; str[j]=sw;					int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;					 l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;					 l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;				}				if(a[i][1]==a[j][1]){					if(a[i][2]<a[j][2]){						string sw=str[i]; str[i]=str[j]; str[j]=sw;						int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;						 l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;						 l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;					}				}			}		}		}		int y=n/2;		string st[y];		for(int i=0;i<y;i  ){			st[i]=str[i];		}		for(int i=0;i<y-1;i  ){			for(int j=i 1;j<y;j  ){				if(st[i]>st[j]){					string qw=st[i]; st[i]=st[j]; st[j]=qw;				}			} 		}		for(int i=0;i<y;i  ){			cout<<st[i]<<endl;		}	return 0;}
来源:https://www.icode9.com/content-4-312601.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
multimap的使用方法和举例
C/C++拾遗(九):string对象与vector对象
Problem 1458
Java中数字转换为字符串,字符串转换为字符
Python中如何将int转换为String
C#截取字符串最后几位的函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服