Advertisement
Guest User

task

a guest
Jul 22nd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class TT {
  4.     public static void main(String[] args){
  5.         Scanner sc = new Scanner(System.in);
  6.  
  7.         String input = sc.nextLine();
  8.  
  9.         Map<String,List<String>> racerAndRoads = new HashMap<>();
  10.         Map<String,Integer> roadsAndCountOfRacers = new HashMap<>();
  11.  
  12.         while(!input.equals("END")){
  13.             String[] tokens = input.split("->");
  14.             String token = tokens[0];
  15.  
  16.             if (token.equals("Add")){
  17.                 String road = tokens[1];
  18.                 String racer = tokens[2];
  19.                 if (!racerAndRoads.containsKey(road)){
  20.                     racerAndRoads.put(road,new ArrayList<>());
  21.                     racerAndRoads.get(road).add(racer);
  22.                     roadsAndCountOfRacers.put(road,1);
  23.                 }
  24.                 else{
  25.                     racerAndRoads.get(road).add(racer);
  26.                     roadsAndCountOfRacers.put(road,roadsAndCountOfRacers.get(road)+1);
  27.                 }
  28.                 //System.out.println(racerAndRoads);
  29.             }
  30.             else if (token.equals("Move")){
  31.                 String road = tokens[1];
  32.                 String racer = tokens[2];
  33.                 String nextRoad = tokens[3];
  34.                 if (racerAndRoads.containsKey(road)){
  35.                     if (racerAndRoads.get(road).contains(racer)){
  36.                         racerAndRoads.get(road).remove(racer);
  37.                         roadsAndCountOfRacers.put(road,roadsAndCountOfRacers.get(road)-1);
  38.                         if (roadsAndCountOfRacers.get(road)==0){
  39.                             racerAndRoads.remove(road);
  40.                         }
  41.                         //System.out.println(racerAndRoads);
  42.  
  43.                         racerAndRoads.get(nextRoad).add(racer);
  44.                         //System.out.println(racerAndRoads);
  45.                     }
  46.                 }
  47.                 //System.out.println(racerAndRoads);
  48.             }
  49.             else if (token.equals("Close")){
  50.                 String road = tokens[1];
  51.  
  52.                 racerAndRoads.remove(road);
  53.                 //System.out.println(racerAndRoads);
  54.             }
  55.  
  56.             input = sc.nextLine();
  57.         }
  58.         System.out.println("Practice sessions:");
  59.         for (Map.Entry<String,List<String>> entry : racerAndRoads.entrySet()) {
  60.             System.out.printf("%s%n",entry.getKey());
  61.             for (Map.Entry<String,List<String>> entry2 : racerAndRoads.entrySet()) {
  62.                 if (entry.getKey().equals(entry2.getKey())){
  63.                     //System.out.printf("++%s%n",entry2.getValue());
  64.                     String output = String.join("\n++",entry2.getValue());
  65.                     System.out.printf("++%s%n",output);
  66.                 }
  67.             }
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement