Guest User

i need more information

a guest
Mar 26th, 2019
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.35 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.*;
  5. import java.util.stream.Collectors;
  6.  
  7. public class Race_P10 {
  8.     public static void main(String[] args) throws IOException {
  9.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  10.  
  11.         ArrayList<String> participantsArray = Arrays.stream(reader.readLine().split(", ")).collect(Collectors.toCollection(ArrayList::new));
  12.         LinkedHashMap<String, Integer> winners = new LinkedHashMap<>();
  13.  
  14.         String input = "";
  15.         while (!"end of race".equals(input = reader.readLine())) {
  16.  
  17.             String name = "";
  18.             int distance = 0;
  19.  
  20.             for (int i = 0; i < input.length(); i++) {
  21.                 char test = input.charAt(i);
  22.                 if (Character.isLetter(test)) {
  23.                     name += test;
  24.                 } else if (Character.isDigit(test)) {
  25.                     distance += Integer.parseInt(Character.toString(test));
  26.                 }
  27.             }
  28.             if (participantsArray.contains(name)) {
  29.                 if (!winners.containsKey(name)) {
  30.                     winners.putIfAbsent(name, distance);
  31.                 } else {
  32.                     winners.put(name, winners.get(name) + distance);
  33.                 }
  34.             }
  35.         }
  36.         LinkedHashMap<String, Integer> save = new LinkedHashMap<>();
  37.  
  38. //        .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
  39. //        .sorted((v1, v2) -> v2.getValue().compareTo(v1.getValue()))
  40.  
  41.         save = winners.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).
  42.                 collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
  43.  
  44.         for (int i = 0; i < 3; i++) {
  45.             Map.Entry<String, Integer> output = save.entrySet().iterator().next();
  46.             String key = output.getKey();
  47.             if (i == 0) {
  48.                 System.out.println(String.format("1st place: %s", key));
  49.                 save.remove(key);
  50.             } else if (i == 1) {
  51.                 System.out.println(String.format("2nd place: %s", key));
  52.                 save.remove(key);
  53.             } else {
  54.                 System.out.println(String.format("3rd place: %s", key));
  55.             }
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment