Advertisement
Guest User

Untitled

a guest
Mar 25th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.24 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class ChampionsLeague {
  4.     public static void main(String[] args) {
  5.         Scanner scan = new Scanner(System.in);
  6.         HashMap<String, ArrayList<String>> teams = new HashMap<>();
  7.         TreeMap<String, Integer> wins = new TreeMap<>();
  8.         String input = scan.nextLine();
  9.         while (!input.equals("stop")) {
  10.             String[] line = input.split(" \\| ");
  11.             String team1 = line[0];
  12.             String team2 = line[1];
  13.             boolean team1win = true;
  14.             String[] firstMatch = line[2].split(":");
  15.             String[] secondMatch = line[3].split(":");
  16.  
  17.             int team1homegoals = Integer.parseInt(firstMatch[0]);
  18.             int team1awaygoals = Integer.parseInt(secondMatch[1]);
  19.             int team2homegoals = Integer.parseInt(secondMatch[0]);
  20.             int team2awaygoals = Integer.parseInt(firstMatch[1]);
  21.             team1win = isTeam1winning(team1homegoals, team1awaygoals, team2homegoals, team2awaygoals);
  22.            
  23.             String winner = team1win ? team1 : team2;
  24.             String loser = !team1win ? team1 : team2;
  25.            
  26.             ArrayList<String> losers = new ArrayList<>();
  27.             ArrayList<String> winners = new ArrayList<>();
  28.            
  29.             if (!teams.containsKey(winner)) {
  30.                 losers.add(loser);
  31.                 teams.put(winner, losers);
  32.                 wins.put(winner, 0);
  33.             }
  34.             if (!teams.containsKey(loser)) {
  35.                 winners.add(winner);
  36.                 teams.put(loser, winners);
  37.                 wins.put(loser, 0);
  38.             }
  39.             if (!teams.get(winner).contains(loser)) {
  40.                 teams.get(winner).add(loser);
  41.             }
  42.             if (!teams.get(loser).contains(winner)) {
  43.                 teams.get(loser).add(winner);
  44.             }
  45.             wins.put(winner, wins.get(winner) + 1);
  46.  
  47.             input = scan.nextLine();
  48.  
  49.         }
  50.        
  51.        
  52.         ArrayList<String> winningOrder = new ArrayList<>();
  53.                 wins.entrySet().stream()
  54.                 .sorted((team1, team2) -> team2.getValue().compareTo(team1.getValue()))
  55.                 .forEach(team -> winningOrder.add(team.getKey()));
  56.         StringBuilder sb = new StringBuilder();
  57.         for (String team : winningOrder) {
  58.             sb.append(team + "\n");
  59.             sb.append(String.format("- Wins: %d\n", wins.get(team)));
  60.             sb.append("- Opponents: ");
  61.             ArrayList<String> opponents = teams.get(team);
  62.             opponents.stream().sorted().forEach(opponent -> sb.append(opponent + ", "));
  63.             sb.deleteCharAt(sb.length() - 2);
  64.             sb.append("\n");
  65.         }
  66.        
  67.        
  68.         System.out.println(sb.toString());
  69.        
  70.        
  71.     }
  72.  
  73.     public static boolean isTeam1winning(int team1Hgoals, int team1Agoals, int team2Hgoals, int team2Agoals) {
  74.         if (team1Hgoals + team1Agoals > team2Agoals + team2Hgoals) {
  75.             return true;
  76.         } else if (team1Agoals + team1Hgoals < team2Agoals + team2Hgoals) {
  77.             return false;
  78.         } else {
  79.             if (team1Agoals > team2Agoals) {
  80.                 return true;
  81.             } else {
  82.                 return false;
  83.             }
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement