Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.concurrent.atomic.AtomicInteger;
- public class AnonymousCache {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, Map<String, Integer>> contest = new HashMap<>();
- Map<String, String> registeredContestants = new HashMap<>();
- String data;
- while (!"END".equals(data = scanner.nextLine())) {
- String[] info = data.split("\\s+->\\s+");
- String contestant = info[1];
- String country = info[0];
- registeredContestants.putIfAbsent(contestant, country);
- if (!registeredContestants.get(contestant).equals(country)) {
- continue;
- }
- int points = Integer.parseInt(info[2]);
- contest.putIfAbsent(country, new LinkedHashMap<>());
- contest.get(country).putIfAbsent(contestant, 0);
- contest.get(country).put(contestant, contest.get(country).get(contestant) + points);
- }
- Map<String, Integer> countriesPoints = new HashMap<>();
- for(Map.Entry<String, Map<String, Integer>> entry : contest.entrySet()) {
- int currentSum = 0;
- for (Map.Entry<String, Integer> subEntry: entry.getValue().entrySet()) {
- currentSum += subEntry.getValue();
- }
- countriesPoints.put(entry.getKey(), currentSum);
- }
- contest.entrySet().stream().sorted((pair1, pair2) -> {
- return Integer.compare(countriesPoints.get(pair2.getKey()), countriesPoints.get(pair1.getKey()));
- }).forEach(pair -> {
- System.out.println(String.format("%s: %d", pair.getKey(), countriesPoints.get(pair.getKey())));
- pair.getValue().forEach((key, value) -> System.out.println(String.format("-- %s -> %d"
- , key, value)));
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement