Untitled
unknown
plain_text
a year ago
2.8 kB
3
Indexable
import java.util.*; public class _12_SerbeanUnleashed { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); LinkedHashMap<String, LinkedHashMap<String, Integer>> concerts = new LinkedHashMap<>(); String input = scanner.nextLine(); while (!input.equals("End")) { //Lepa Brena @Sunny Beach 25 3500 if (!input.contains("@") || input.charAt(input.indexOf("@") - 1) != ' ') { input = scanner.nextLine(); continue; } String singer = input.substring(0, input.indexOf("@") - 1); int firstIndexOfNumber = 0; //@Sunny Beach 25 for (int i = input.indexOf("@"); i < input.length(); i++) { char currentSymbol = input.charAt(i); if (Character.isDigit(currentSymbol) && input.charAt(i - 1) == ' ') { firstIndexOfNumber = i; break; } } if (firstIndexOfNumber == 0) { input = scanner.nextLine(); continue; } String venue = input.substring(input.indexOf("@") + 1, firstIndexOfNumber - 1); String numbers = input.substring(firstIndexOfNumber);//"25 3000" String[] numbersArray = numbers.split("\\s+"); if (numbersArray.length != 2) { input = scanner.nextLine(); continue; } int price = Integer.parseInt(numbersArray[0]); int capacity = Integer.parseInt(numbersArray[1]); //venue -> {singer -> price} if (!concerts.containsKey(venue)) { LinkedHashMap<String, Integer> singers = new LinkedHashMap<>(); singers.put(singer, price * capacity); concerts.put(venue, singers); } else { LinkedHashMap<String, Integer> currentSingers = concerts.get(venue); if (currentSingers.containsKey(singer)) { currentSingers.put(singer, currentSingers.get(singer) + price * capacity); } else { currentSingers.put(singer, price * capacity); } concerts.put(venue, currentSingers); } input = scanner.nextLine(); } for (String venue : concerts.keySet()) { System.out.println(venue); Map<String, Integer> singers = concerts.get(venue); singers.entrySet().stream().sorted((singer1, singer2) -> singer2.getValue().compareTo(singer1.getValue())) .forEach(singer -> System.out.println(String.format("# %s -> %d", singer.getKey(), singer.getValue()))); } } }
Editor is loading...
Leave a Comment