关注
只做了前两道题, 第一题AC 第二题, 有bug, 没通过。。。时间不够
import java.util.*;
import java.util.Comparator;
public class Main{
public static class Team{
public String name;//队伍名称
public int win;//胜利次数
public int lose;//失败次数
public int equ;//平分次数
public int ball;//进球个数
public Team(String name){
this.name = name;
this.win = 0;
this.lose = 0;
this.equ = 0;
this.ball = 0;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getWin() {
return win;
}
public void setWin(int win) {
this.win = win;
}
public int getLose() {
return lose;
}
public void setLose(int lose) {
this.lose = lose;
}
public int getEqu() {
return equ;
}
public void setEqu(int equ) {
this.equ = equ;
}
public int getBall() {
return ball;
}
public void setBall(int ball) {
this.ball = ball;
}
}
public static class TeamComparator implements Comparator<Team> {
@Override
public int compare(Team t1, Team t2){
int score2 = t2.getWin()*3 + t2.getEqu();
int score1 = t1.getWin()*3 + t1.getEqu();
if(score2 > score1){//按照积分大小降序
return score2 - score1;
}else if(score2 == score1){//积分相同时候
int n2 = t2.getWin() + t2.getEqu() - t2.getLose();//t2净胜球数量
int n1 = t1.getWin() + t1.getEqu() - t1.getLose();//t1净胜球数量
if(n2 > n1){
return n2 - n1;//净胜球数量降序
}
}
return (t2.getWin() + t2.getEqu()) - (t1.getWin() + t1.getEqu());//仍然相同的按进球数降序排列。
}
}
//2
//a
//A
//a-A 2:1
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Team[] team;//参赛队伍数组
HashMap<String, Team> map = new HashMap<>();
while(sc.hasNextLine()){
int n = Integer.parseInt(sc.nextLine());//参赛队伍数量
int k = n*(n-1)/2;//循环读取比赛数据
team = new Team[n];//初始化参赛队伍数量
String line = "";
//创建队伍 并 初始化为空
for(int i=0; i<n; i++)
map.put(sc.nextLine(), null);
for(int i=0; i<k; i++){
String in = sc.nextLine();//读入一行比赛数据
String t1_name = in.split(" ")[0].split("-")[0];
String t2_name = in.split(" ")[0].split("-")[1];
int t1 = Integer.parseInt(in.split(" ")[1].split(":")[0]);
int t2 = Integer.parseInt(in.split(" ")[1].split(":")[1]);
if(map.containsKey(t1_name) && map.get(t1_name) != null){//如果存在t1这个队伍
Team temp1 = map.get(t1_name);
if(t1 > t2){//t1胜一场 t2输一场
temp1.setWin(temp1.getWin() + 1);
}else if(t1 < t2){
temp1.setLose(temp1.getLose() +1);//t1 lose1 t2 win1
}else{
temp1.setEqu(temp1.getEqu() + 1);//平分一次
}
//更新进球个数
temp1.setBall(temp1.getBall() + t1);
map.put(t1_name, temp1);
}else{//如果不存在t1这个队伍
Team temp1 = new Team(t1_name);
if(t1 > t2){//t1胜一场 t2输一场
temp1.setWin(1);
}else if(t1 < t2){
temp1.setLose(1);//t1 lose1 t2 win1
}else{
temp1.setEqu(1);//平分一次
}
//进球个数
temp1.setBall(t1);
map.put(t1_name, temp1);
}
if(map.containsKey(t2_name) && map.get(t2_name) != null){//如果存在t2这个队伍
Team temp2 = map.get(t2_name);
if(t2 > t1){//t2胜一场 t1输一场
temp2.setWin(temp2.getWin() + 1);
}else if(t1 > t2){//t2输
temp2.setLose(temp2.getLose() +1);//t2 lose1 t1 win1
}else{
temp2.setEqu(temp2.getEqu() + 1);//平分一次
}
//更新进球个数
temp2.setBall(temp2.getBall() + t2);
map.put(t2_name, temp2);
}else{//如果不存在t2这个队伍
Team temp2 = new Team(t2_name);
if(t2 > t1){//t2胜一场 t2输一场
temp2.setWin(1);
}else if(t1 < t2){
temp2.setLose(1);//t1 lose1 t2 win1
}else{
temp2.setEqu(1);//平分一次
}
//进球个数
temp2.setBall(t2);
map.put(t2_name, temp2);
}
int index = 0;
for(Map.Entry<String, Team> entry : map.entrySet()){//遍历出所有队伍的信息
team[index] = entry.getValue();
index++;
}
//按照排序规则排序
Arrays.sort(team, new TeamComparator());
for(int j=0; j< n/2; j++){
Team temp = team[j];
System.out.println(temp.name);
}
}
}
}
}
查看原帖
点赞 评论
相关推荐
11-11 09:31
香港中文大学 后端 点赞 评论 收藏
分享
10-18 21:51
西安电子科技大学 C++ 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
261410次浏览 2164人参与
# 0offer是寒冬太冷还是我太菜 #
886493次浏览 7900人参与
# 北方华创开奖 #
23573次浏览 260人参与
# 地方国企笔面经互助 #
2815次浏览 7人参与
# 学历or实习经历,哪个更重要 #
43177次浏览 325人参与
# 选完offer后,你后悔学本专业吗 #
13004次浏览 94人参与
# 查收我的offer竞争力报告 #
19049次浏览 250人参与
# 应届生被毁约被毁意向了怎么办 #
28028次浏览 243人参与
# 你最想要的公司福利是? #
41692次浏览 144人参与
# 如何一边实习一边秋招 #
986972次浏览 12608人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3256次浏览 36人参与
# 嵌入式转岗的难度怎么样 #
11165次浏览 250人参与
# 你最希望上岸的公司是? #
76311次浏览 469人参与
# 如何写一份好简历 #
604618次浏览 8499人参与
# 面试体验感最好的是哪家? #
83544次浏览 815人参与
# 机械应届生薪资要多少才合适? #
12527次浏览 61人参与
# 牛客十周岁生日快乐 #
48641次浏览 759人参与
# 你认为第一份工作重要吗 #
5409次浏览 49人参与
# 985本硕1个中小厂offer,摆烂or继续努力 #
79785次浏览 589人参与
# 秋招OC许愿 #
227910次浏览 1878人参与
# 来聊聊机械薪资天花板是哪家 #
65332次浏览 442人参与