Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. package AssociativeArrays;
  2.  
  3. import java.util.*;
  4. import java.util.concurrent.atomic.AtomicInteger;
  5. import java.util.stream.Stream;
  6.  
  7. public class Judge {
  8. public static void main(String[] args) {
  9. Scanner scanner = new Scanner(System.in);
  10. Map<String, TreeMap<String, Integer>> contestsUsers = new LinkedHashMap<>();
  11. Map<String, Integer> usersPoints = new TreeMap<>();
  12. String input = scanner.nextLine();
  13. while (!input.equals("no more time")) {
  14. String[] tokens = input.split(" -> ");
  15. String user = tokens[0];
  16. String contest = tokens[1];
  17. int points = Integer.parseInt(tokens[2]);
  18. if (contestsUsers.containsKey(contest)) {
  19. if (!contestsUsers.get(contest).containsKey(user)) {
  20. contestsUsers.get(contest).put(user, points);
  21. if (!usersPoints.containsKey(user)) {
  22. usersPoints.put(user, points);
  23. } else {
  24. usersPoints.put(user, points + usersPoints.get(user));
  25. }
  26. } else if (contestsUsers.get(contest).containsKey(user)) {
  27. if (contestsUsers.get(contest).get(user) < points) {
  28. int curr = points - contestsUsers.get(contest).get(user);
  29. contestsUsers.get(contest).put(user, points);
  30. usersPoints.put(user, curr + usersPoints.get(user));
  31. }
  32. }
  33. } else {
  34. TreeMap<String, Integer> newStudent = new TreeMap<>();
  35. newStudent.put(user, points);
  36. contestsUsers.put(contest, newStudent);
  37. if (usersPoints.containsKey(user)) {
  38. usersPoints.put(user, usersPoints.get(user) + points);
  39. } else {
  40. usersPoints.put(user, points);
  41. }
  42. }
  43. input = scanner.nextLine();
  44. }
  45. AtomicInteger count=new AtomicInteger(1);
  46. contestsUsers.forEach((key,value)->{
  47. System.out.printf("%s: %d participants%n",key,contestsUsers.get(key).size());
  48. count.set(1);
  49. value.entrySet().stream()
  50. .sorted((a,b)->b.getValue().compareTo(a.getValue()))
  51. .forEach(e-> {
  52. System.out.printf("%d. %s <::> %d%n",count.getAndIncrement(),e.getKey(),e.getValue());
  53.  
  54. });
  55.  
  56. });
  57. System.out.println("Individual standings:");
  58. AtomicInteger count2=new AtomicInteger(1);
  59. usersPoints.entrySet()
  60. .stream()
  61. .sorted((a,b)->b.getValue().compareTo(a.getValue()))
  62. .forEach(e-> System.out.printf("%d. %s -> %d%n",count2.getAndIncrement(),e.getKey(),e.getValue()));
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement