足球比分排名
參考自:https://blog.csdn.net/u011489043/article/details/80184972
大學生足協決定舉辦全國性的大學生足球賽,由每個學校派遣一支隊伍代表該校參賽。比賽分割槽分為幾個賽區進行,最終的總決賽中,將有不超過n支隊伍參加。經過激烈的角逐,有機會參與總決賽的隊伍已經決出。
協會對比賽的規則進行了調整,以便使得比賽更具有觀賞性。
1. 總決賽的參賽隊伍為n支,n為偶數;
2. 進入前1/2的隊伍才有資格進入淘汰賽;
3. 隊伍按積分排名,具體規則為:勝一場積3分;平一場積1分;負一場積0分。隊伍首先按積分降序排列,積分相同按淨勝球數降序排列,仍然相同的按進球數降序排列。
4. 基於上述規則,尚未出現有排名歧義的情況發生。
隨著賽程的進行,目前各個隊伍對戰的結果已經確定了,小B負責確定進入淘汰賽的名單,她向你求助,你能幫她嗎?
輸入
測試資料有多組,每組測試資料的第一行為一個整數n(1=< n <=50),為參與總決賽的球隊數,隨後的n行為球隊的名字,由不超過30個的大小寫拉丁字母構成。隨後的n*(n-1)/2行為賽事的開展情況,每行的格式為name1-name2 num1:num2,表示兩支隊伍的比分情況(1=<num1, num2<=100)。確保不會有兩支隊伍同名,也不會出現隊伍自己通自己比賽的情況,且每場比賽僅出現一次。
輸出
對每組測試資料,輸出n/2行,為按字母序排列的進入淘汰賽的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
2
a
A
a-A 2:1
樣例輸出
A
D
a
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] namelist = new String[25];
int i,n;
int j = 0;
String input;
while(sc.hasNext()) {
input = sc.nextLine();
if("output".equals(input)) {
break;
}else{
n = Integer.valueOf(input);
Map<String,Team> map = new HashMap<String,Team>();
input(map,n,sc);
Team[] team = new Team[n];
i = 0;
for (String name : map.keySet()) {
if(name!=null)
team[i++] = map.get(name);
}
//排序
Arrays.sort(team, new Comparator<Team>() {
@Override
public int compare(Team o1, Team o2) {
int score = o2.getScore() - o1.getScore();
int realwin = o2.getRealwin() - o1.getRealwin();
int in = o2.getIn() - o1.getIn();
if(score!=0) return score;
else if(realwin!=0) return realwin;
else return in;
}
});
for (i=0; i < n/2; i++) {
namelist[j++] = team[i].getName();
}
System.out.println("----------");
}
}
//輸出進入決賽的名單
for (String name : namelist) {
if(name!=null)
System.out.println(name);
}
}
//比賽記錄錄入
public static void input(Map<String,Team> map,int n,Scanner sc) {
for (int i = 0; i < n; i++) {
// if(map.get(sc.nextLine()) == null) {
map.put(sc.nextLine(), new Team());
// }
}
for(int i = 0; i < n*(n-1)/2; i++) {
String s = sc.nextLine();
String[] temp = s.split(" ");
String[] names = temp[0].split("-");
String[] ins = temp[1].split(":");
//主隊
Team team1 = map.get(names[0]);
team1.setName(names[0]);
//客隊
Team team2 = map.get(names[1]);
team2.setName(names[1]);
//進球數
int in1 = Integer.parseInt(ins[0]);
int in2 = Integer.parseInt(ins[1]);
//設定進球數
team1.setIn(in1 + team1.getIn());
team2.setIn(in2 + team2.getIn());
//設定得分
if(in1 > in2) {
team1.setScore(3 + team1.getScore());
team2.setScore(0 + team2.getScore());
}if(in1 == in2) {
team1.setRealwin(in1 - in2 + team1.getRealwin());
team2.setRealwin(in2 - in1 + team2.getRealwin());
}else {
team1.setScore(0 + team1.getScore());
team2.setScore(3 + team2.getScore());
}
map.put(names[0], team1);
map.put(names[1], team2);
}
}
相關文章
- 足球比分 賽事直播平臺 開發搭建解決方案
- 夢幻賽事比分軟體開發/體育直播賽事app技術開發/足球即時比分APP
- 足彩軟體app哪個好 足球分析軟體app排名APP
- 籃球足球賽事比分直播系統程式 快至三天搭建上線開發解決方案
- 足球部落——有態度的足球社群
- 足球黑科技之AI與足球智慧分析AI
- 買足球競彩app 足球看盤軟體推薦APP
- 足球競猜網站 競彩足球直播平臺推薦網站
- 足球推薦最準確網站 免費足球分析推薦網站
- 足球大小球預測神器 足球情報大資料分析app大資料APP
- 足球壓球軟體app 2022競彩足球軟體app推薦APP
- 足球預測app分析軟體 ai足球勝負資料的軟體APPAI
- 足球比賽押注平臺推薦 哪個app可以買足球比賽APP
- 可以正規壓足球的app 網上哪個app可以買足球比賽APP
- 競彩足球軟體app推薦 哪個APP賭足球比較靠譜APP
- 競彩足球直播平臺 免費觀看足球比賽直播的軟體
- 在哪買足球彩票app 手機上可以買足球彩票的軟體APP
- RestCloud ETL與Kettle對比分析RESTCloud
- 《實況足球2019》最低配置與推薦電腦配置 實況足球2019配置要求
- 分析足球的最佳軟體 足球賽事推薦預測軟體排行榜
- 手機上賭足球的軟體有哪些 哪個app可以買足球比賽APP
- 足球分析軟體app排行榜 世界盃足球比賽押球平臺推薦APP
- Tower與DevCloud對比分析報告devCloud
- 隨時間漂流的足球手遊
- 2018世界盃性感足球美女圖片大全 2018世界盃足球寶貝圖片
- 分析足球的最佳軟體有哪些?2022世界盃足球分析軟體app排行榜APP
- API測試工具SoapUI & Postman對比分析APIUIPostman
- Git傳輸協議的對比分析Git協議
- RabbitMQ,RocketMQ,Kafka 訊息模型對比分析MQKafka模型
- web前端三大主流框架對比分析Web前端框架
- 中國足球為啥進不了世界盃
- BrandFinance:2018年足球俱樂部50強NaN
- 足球比賽中的資料科學資料科學
- 足球預測app分析軟體哪個準確?最準的足球大小球預測軟體神器APP
- Java-ArrayList & LinkedList的原始碼對比分析Java原始碼
- List集合總結,對比分析ArrayList,Vector,LinkedList
- MySQL 並列排名和順序排名查詢MySql
- 騰訊 、 網易的足球遊戲大戰遊戲