kokusz19

Sakk

Nov 24th, 2020 (edited)
193
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.*;
  4.  
  5. public class Chess {
  6.     public static void main(String[] args) throws Exception{
  7.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8.  
  9.         HashMap<String, Float> versenyzok = new HashMap<>();
  10.         String line;
  11.         while((line = br.readLine()) != null &&  !line.equals("EOF")){
  12.             String[] sor = line.split("#");
  13.             for(int i=0; i<2; i++){
  14.                 Float pont = sor[i+2].equals("1/2") ? 0.5f : Float.parseFloat(sor[i+2]);
  15.                 if(versenyzok.containsKey(sor[i]))
  16.                     versenyzok.put(sor[i], versenyzok.get(sor[i])+pont);
  17.                 else
  18.                     versenyzok.put(sor[i], pont);
  19.             }
  20.         }
  21.  
  22.         TreeMap<Float, ArrayList<String>> kimenet = new TreeMap<>(Collections.reverseOrder());
  23.  
  24.         for (String versenyzoNev: versenyzok.keySet()) {
  25.             if(kimenet.containsKey(versenyzok.get(versenyzoNev))){
  26.                 ArrayList<String> names = kimenet.get(versenyzok.get(versenyzoNev));
  27.                 names.add(versenyzoNev);
  28.                 kimenet.put(versenyzok.get(versenyzoNev), names);
  29.             }
  30.             else{
  31.                 ArrayList<String> name = new ArrayList<>();
  32.                 name.add(versenyzoNev);
  33.                 kimenet.put(versenyzok.get(versenyzoNev), name);
  34.             }
  35.         }
  36.  
  37.         for (Float points: kimenet.keySet()) {
  38.             Collections.sort(kimenet.get(points), new Comparator<String>() {
  39.                 @Override
  40.                 public int compare(String s, String t1) {
  41.                     return s.compareTo(t1);
  42.                 }
  43.             });
  44.         }
  45.  
  46.         for (Float points: kimenet.keySet()) {
  47.             if(points == points.intValue())
  48.                 System.out.print(points.intValue() + ": ");
  49.             else if(points.intValue() != 0){
  50.                 System.out.print(points.intValue() + " 1/2: ");
  51.             }
  52.             else{
  53.                 System.out.print("1/2: ");
  54.             }
  55.             boolean first = true;
  56.             for (String name: kimenet.get(points)) {
  57.                 if(first) {
  58.                     System.out.print(name + "");
  59.                     first = false;
  60.                 }
  61.                 else{
  62.                     System.out.print(", " + name);
  63.                 }
  64.             }
  65.             System.out.print("\n");
  66.         }
  67.     }
  68. }
RAW Paste Data