世界杯来了

红太狼 2021-12-11 23:57 447阅读 0赞

题目描述

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

比赛规则如下:

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

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

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

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

【输入形式】

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

【输出形式】

  1. 输入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代码

  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. cin>>n;
  8. cin.get();
  9. string str[n];
  10. for(int i=0;i<n;i++){
  11. getline(cin,str[i]);
  12. }
  13. int m=n*(n-1)/2,a[n][3]={0};
  14. while(m--){
  15. string string,str1,str2;
  16. char x;
  17. int q1,q2,k=0;
  18. cin>>string;
  19. cin>>q1>>x>>q2;
  20. for(int i=0;i<n;i++){
  21. if(string[i]=='-') {
  22. k=i;
  23. break;
  24. }
  25. }
  26. int m=string.length();
  27. str1=string.substr(0,k);
  28. str2=string.substr(k+1,m-1);
  29. for(int i=0;i<n;i++){
  30. if(str[i]==str1){
  31. if(q1>q2) a[i][0]=a[i][0]+3;
  32. if(q1==q2) a[i][0]=a[i][0]+1;
  33. a[i][1]=a[i][1]+q1-q2;
  34. a[i][2]=a[i][2]+q1;
  35. }
  36. if(str[i]==str2){
  37. if(q1<q2) a[i][0]=a[i][0]+3;
  38. if(q1==q2) a[i][0]=a[i][0]+1;
  39. a[i][1]=a[i][1]+q2-q1;
  40. a[i][2]=a[i][2]+q2;
  41. }
  42. }
  43. }
  44. for(int i=0;i<n-1;i++){
  45. for(int j=i+1;j<n;j++){
  46. if(a[i][0]<a[j][0]){
  47. string sw=str[i]; str[i]=str[j]; str[j]=sw;
  48. int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;
  49. l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;
  50. l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;
  51. }
  52. if(a[i][0]==a[j][0]){
  53. if(a[i][1]<a[j][1]){
  54. string sw=str[i]; str[i]=str[j]; str[j]=sw;
  55. int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;
  56. l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;
  57. l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;
  58. }
  59. if(a[i][1]==a[j][1]){
  60. if(a[i][2]<a[j][2]){
  61. string sw=str[i]; str[i]=str[j]; str[j]=sw;
  62. int l=a[i][0]; a[i][0]=a[j][0]; a[j][0]=l;
  63. l=a[i][1]; a[i][1]=a[j][1]; a[j][1]=l;
  64. l=a[i][2]; a[i][2]=a[j][2]; a[j][2]=l;
  65. }
  66. }
  67. }
  68. }
  69. }
  70. int y=n/2;
  71. string st[y];
  72. for(int i=0;i<y;i++){
  73. st[i]=str[i];
  74. }
  75. for(int i=0;i<y-1;i++){
  76. for(int j=i+1;j<y;j++){
  77. if(st[i]>st[j]){
  78. string qw=st[i]; st[i]=st[j]; st[j]=qw;
  79. }
  80. }
  81. }
  82. for(int i=0;i<y;i++){
  83. cout<<st[i]<<endl;
  84. }
  85. return 0;
  86. }

发表评论

表情:
评论列表 (有 0 条评论,447人围观)

还没有评论,来说两句吧...

相关阅读

    相关 我看世界杯

    目录 一、世界杯概念 二、世界杯历程 三、世界杯奖项 四、世界杯观看感受 一、世界杯概念 1世界杯是各个国家通过州分区预选赛胜利才能参与的,参与者都是代表国

    相关 MAUI

    各位很久没有和大家说端的开发了,技术发展特别快,我不知道还有多少国内的开发人员还坚守用Xamarin,但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情,但微

    相关 世界杯,无趣!

    似乎除了一场德国4:0血洗澳大利亚的比赛还算凑合外,其他比赛都是缺乏精彩,以至于新浪采用了这样的标题:德国队拯救世界杯,倒是很贴切。 世界杯开始已经四天了,10多场比赛了,可

    相关 世界杯

    题目描述 2018年俄罗斯世界杯结束了,法国获得冠军,全世界球迷度过了一个非常愉快的夏天。作为中国球迷,不能总是看别人踢球,这不福利来了,根据FIFA(国际足联)及全体成