Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class ChampionsLeague {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- HashMap<String, ArrayList<String>> teams = new HashMap<>();
- TreeMap<String, Integer> wins = new TreeMap<>();
- String input = scan.nextLine();
- while (!input.equals("stop")) {
- String[] line = input.split(" \\| ");
- String team1 = line[0];
- String team2 = line[1];
- boolean team1win = true;
- String[] firstMatch = line[2].split(":");
- String[] secondMatch = line[3].split(":");
- int team1homegoals = Integer.parseInt(firstMatch[0]);
- int team1awaygoals = Integer.parseInt(secondMatch[1]);
- int team2homegoals = Integer.parseInt(secondMatch[0]);
- int team2awaygoals = Integer.parseInt(firstMatch[1]);
- team1win = isTeam1winning(team1homegoals, team1awaygoals, team2homegoals, team2awaygoals);
- String winner = team1win ? team1 : team2;
- String loser = !team1win ? team1 : team2;
- ArrayList<String> losers = new ArrayList<>();
- ArrayList<String> winners = new ArrayList<>();
- if (!teams.containsKey(winner)) {
- losers.add(loser);
- teams.put(winner, losers);
- wins.put(winner, 0);
- }
- if (!teams.containsKey(loser)) {
- winners.add(winner);
- teams.put(loser, winners);
- wins.put(loser, 0);
- }
- if (!teams.get(winner).contains(loser)) {
- teams.get(winner).add(loser);
- }
- if (!teams.get(loser).contains(winner)) {
- teams.get(loser).add(winner);
- }
- wins.put(winner, wins.get(winner) + 1);
- input = scan.nextLine();
- }
- ArrayList<String> winningOrder = new ArrayList<>();
- wins.entrySet().stream()
- .sorted((team1, team2) -> team2.getValue().compareTo(team1.getValue()))
- .forEach(team -> winningOrder.add(team.getKey()));
- StringBuilder sb = new StringBuilder();
- for (String team : winningOrder) {
- sb.append(team + "\n");
- sb.append(String.format("- Wins: %d\n", wins.get(team)));
- sb.append("- Opponents: ");
- ArrayList<String> opponents = teams.get(team);
- opponents.stream().sorted().forEach(opponent -> sb.append(opponent + ", "));
- sb.deleteCharAt(sb.length() - 2);
- sb.append("\n");
- }
- System.out.println(sb.toString());
- }
- public static boolean isTeam1winning(int team1Hgoals, int team1Agoals, int team2Hgoals, int team2Agoals) {
- if (team1Hgoals + team1Agoals > team2Agoals + team2Hgoals) {
- return true;
- } else if (team1Agoals + team1Hgoals < team2Agoals + team2Hgoals) {
- return false;
- } else {
- if (team1Agoals > team2Agoals) {
- return true;
- } else {
- return false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement