Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class MOBAChallenger {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, TreeMap<String, Integer>> pool = new HashMap<>();
- Map<String, Integer> playersTotalSkills = new HashMap<>();
- String input = scanner.nextLine();
- while (!input.equals("Season end")) {
- String[] tokens = input.split(" ");
- if (tokens[1].equals("vs")) {
- String player1 = tokens[0];
- String player2 = tokens[2];
- if (pool.containsKey(player1) && pool.containsKey(player2)) {
- int totalPointsPlayer1 = playersTotalSkills.get(player1);
- int totalPointsPlayer2 = playersTotalSkills.get(player2);
- final String[] playerToRemove = {""};
- for (Map.Entry<String, Integer> entry1 : pool.get(player1).entrySet()) {
- String player1Position = entry1.getKey();
- for (Map.Entry<String, Integer> entry2 : pool.get(player2).entrySet()) {
- String player2Position = entry2.getKey();
- if (player1Position.equals(player2Position)) {
- if (totalPointsPlayer1 > totalPointsPlayer2) {
- playerToRemove[0] = player2;
- } else if (totalPointsPlayer1 < totalPointsPlayer2) {
- playerToRemove[0] = player1;
- }
- }
- }
- }
- if (!playerToRemove[0].equals("")) {
- pool.remove(playerToRemove[0]);
- playersTotalSkills.remove(playerToRemove[0]);
- }
- }
- Object playerToRemove = new String[]{""};
- } else {
- String player = tokens[0];
- String position = tokens[2];
- int skill = Integer.parseInt(tokens[4]);
- if (!pool.containsKey(player)) {
- pool.put(player, new TreeMap<>());
- pool.get(player).put(position, skill);
- playersTotalSkills.put(player, skill);
- } else if (!pool.get(player).containsKey(position)) {
- pool.get(player).put(position, skill);
- playersTotalSkills.put(player, playersTotalSkills.get(player) + skill);
- } else if (pool.get(player).get(position) < skill) {
- pool.get(player).put(position, skill);
- playersTotalSkills
- .put(player, playersTotalSkills.get(player) + skill - pool.get(player).get(position));
- }
- }
- input = scanner.nextLine();
- }
- playersTotalSkills.entrySet()
- .stream()
- .sorted((f, s) -> {
- int result = s.getValue() - f.getValue();
- if (result == 0) {
- result = f.getKey().compareTo(s.getKey());
- }
- return result;
- })
- .forEach(e -> {
- System.out.printf("%s: %d skill%n", e.getKey(), e.getValue());
- pool.get(e.getKey()).entrySet()
- .stream()
- .sorted((f, s) -> {
- int result = s.getValue() - f.getValue();
- if (result == 0) {
- result = f.getKey().compareTo(s.getKey());
- }
- return result;
- })
- .forEach(a -> {
- System.out.printf("- %s <::> %d%n", a.getKey(), a.getValue());
- });
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment