Advertisement
Guest User

da.. prowerkata

a guest
Mar 26th, 2019
777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Map;
  6. import java.util.TreeMap;
  7.  
  8. public class SoftUni_Exam_Results_P10 {
  9.     public static void main(String[] args) throws IOException {
  10.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  11.  
  12.         Map<String, Integer> nameAndPoints = new TreeMap<>();
  13.         Map<String, ArrayList<String>> nameAndLanguage = new TreeMap<>();
  14.  
  15.         String input = "";
  16.         while (!"exam finished".equalsIgnoreCase(input = reader.readLine())) {
  17.             String[] inputArray = input.split("-");
  18.  
  19.             String name = inputArray[0];
  20.             String language = inputArray[1];
  21.  
  22.             switch (inputArray[1]) {
  23.                 case "banned":
  24.                     nameAndPoints.remove(name);
  25.                     break;
  26.                 default:
  27.                     int score = Integer.parseInt(inputArray[2]);
  28.  
  29.                     if (!nameAndPoints.containsKey(name)) {
  30.                         nameAndPoints.putIfAbsent(name, score);
  31.                     }
  32.                     if (nameAndPoints.containsKey(name) && nameAndPoints.get(name) < score) {
  33.                         nameAndPoints.put(name, score);
  34.                     }
  35.  
  36.                     if (!nameAndLanguage.containsKey(language)) {
  37.                         nameAndLanguage.put(language, new ArrayList<>());
  38.                     }
  39.                     nameAndLanguage.get(language).add(name);
  40.                     break;
  41.             }
  42.         }
  43.         System.out.println("Results:");
  44.         nameAndPoints.entrySet().stream().sorted((e1, e2) -> {
  45.             int sort = Integer.compare(e2.getValue(), e1.getValue());
  46.             if (sort == 0) {
  47.                 sort = e1.getKey().compareTo(e2.getKey());
  48.             }
  49.             return sort;
  50.         }).forEach(e -> {
  51.             System.out.println(String.format("%s | %d", e.getKey(), e.getValue()));
  52.         });
  53.  
  54.         System.out.println("Submissions:");
  55.         nameAndLanguage.entrySet().stream().sorted((e1, e2) -> {
  56.             int sort = Integer.compare(e2.getValue().size(), e1.getValue().size());
  57.             if (sort == 0) {
  58.                 sort = e1.getKey().compareTo(e2.getKey());
  59.             }
  60.             return sort;
  61.         }).forEach(kvp -> {
  62.             System.out.println(String.format("%s - %d", kvp.getKey(), kvp.getValue().size()));
  63.         });
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement