Advertisement
Tsuki11

Untitled

Jun 1st, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class E11_LogsAggregator {
  5.     public static void main(String[] args) {
  6.         Scanner scan = new Scanner(System.in);
  7.  
  8.         int countLogs = Integer.parseInt(scan.nextLine());
  9.  
  10.         Map<String, Map<Integer,TreeSet<String>>> usersData = new TreeMap<>();
  11.         while(countLogs -- > 0){
  12.             String[] tokens = scan.nextLine().split("\\s+");
  13.  
  14.             String name = tokens[1];
  15.             int duration = Integer.parseInt(tokens[2]);
  16.             TreeSet<String> ips = new TreeSet<>(){{add(tokens[0]);}};
  17.  
  18.             if(!usersData.containsKey(name)){
  19.                 usersData.putIfAbsent(name, new LinkedHashMap<>());
  20.                 usersData.get(name).put(duration, ips); // не дава с интерфейс само Set
  21.             }else{
  22.                     Map<Integer, TreeSet<String>> temp = usersData.get(name);
  23.                     int currentValue = duration;
  24.                     TreeSet<String> tempValue = new TreeSet<>();
  25.                     for (Map.Entry<Integer, TreeSet<String>> entry : temp.entrySet()) {
  26.                         int asdf = entry.getKey();
  27.                         currentValue+=entry.getKey();
  28.                         tempValue.addAll(entry.getValue());
  29.                     }
  30.                     tempValue.addAll(ips);
  31.                     usersData.get(name).clear();
  32.                     usersData.get(name).put(currentValue,tempValue);
  33.             }
  34.         }
  35.         usersData.forEach((key, value) -> {
  36.             System.out.print(key + ": ");
  37.             value.forEach((key1, value1) -> {
  38.                 System.out.print(key1 + " ");
  39.                 System.out.println(value1);
  40.             });
  41.         });
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement