Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.19 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.lang.reflect.Array;
  5. import java.util.*;
  6. import java.util.stream.Collectors;
  7.  
  8. public class Main {
  9.     public static void main(String[] args) throws IOException {
  10.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  11.  
  12.         Map<String, Map<String, Integer>> book = new TreeMap<>();
  13.         Map<String, Integer> pointMap = new TreeMap<>();
  14.  
  15.         String input = reader.readLine();
  16.  
  17.         while (!input.equalsIgnoreCase("exam finished")) {
  18.  
  19.             String[] data = input.split("-");
  20.             String name = data[0];
  21.             String language = data[1];
  22.  
  23.             if (!language.equalsIgnoreCase("banned")) {
  24.                 int points = Integer.parseInt(data[2]);
  25.                 book.putIfAbsent(name, new TreeMap<>());
  26.                 book.get(name).put(language, points);
  27.             } else {
  28.                 book.putIfAbsent(name, new TreeMap<>());
  29.                 book.get(name).putIfAbsent("banned", 0);
  30.             }
  31.  
  32.             pointMap.putIfAbsent(language, 0);
  33.             pointMap.put(language, pointMap.get(language) + 1);
  34.  
  35.  
  36.  
  37.             input = reader.readLine();
  38.         }
  39.  
  40.  
  41.         System.out.println("Results:");
  42.  
  43.         book.entrySet()
  44.                 .stream()
  45.                 .filter(x -> !x.getValue().containsKey("banned"))
  46.                 .sorted((a, b) -> Integer.compare(b.getValue().values().stream().mapToInt(y -> y).max().getAsInt(), a.getValue().values().stream().mapToInt(y -> y).max().getAsInt()))
  47.                 .forEach(x -> {
  48.                     int maxPoints = x.getValue().values().stream().mapToInt(y -> y).max().getAsInt();
  49.                     System.out.printf("%s | %d\n", x.getKey(), maxPoints);
  50.                 });
  51.  
  52.         System.out.println("Submissions:");
  53.  
  54.         pointMap.entrySet()
  55.                 .stream()
  56.                 .filter(x -> !x.getKey().equals("banned"))
  57.                 .sorted((a, b) -> Integer.compare(b.getValue(), a.getValue()))
  58.                 .forEach(x -> {
  59.                     System.out.printf("%s - %d\n", x.getKey(), x.getValue());
  60.                 });
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement