題目描述
2018年俄羅斯世界杯結束了,法國獲得冠軍,全世界球迷度過了一個非常愉快的夏天。作為中國球迷,不能總是看別人踢球,這不福利來了,根據(jù)FIFA(國際足聯(lián))及全體成員協(xié)會的一致決定,2118年世界杯將在中國舉辦,作為東道主,中國隊將無需參加預選賽而直接參加決賽階段的比賽。
比賽規(guī)則如下:
總共n(n為偶數(shù))個球隊參加比賽
按照分組賽積分排名,前n/2的球隊進入淘汰賽
積分排名的規(guī)則如下:球隊獲勝得3分,平局得1分,失利得0分,按照積分遞減、凈勝球遞減以及進球數(shù)遞減方式排名
編寫一個程序,根據(jù)給出的參賽隊伍名單和所有比賽的結果,找出成功進入淘汰賽階段的球隊名單。
【輸入形式】
第一行輸入包含唯一整數(shù)n(1<=n<=50),參加世界杯決賽的球隊數(shù)量。接下來的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./content-4-312601.html
|