Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.LinkedHashMap;
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class SerbianUnleashed_v2 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- LinkedHashMap<String, LinkedHashMap<String, Integer>> concerts = new LinkedHashMap<>();
- String regex = "^(?<singer>[\\w\\s]+)\\s@(?<venue>[\\w\\s]+)\\s(?<ticketPrice>\\d+)\\s(?<ticketCount>\\d+)$";
- String input = scanner.nextLine();
- while (!input.equals("End")) {
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(input);
- if (matcher.find()) {
- String place = matcher.group("venue");
- String singer = matcher.group("singer");
- int ticketPrice = Integer.parseInt(matcher.group("ticketPrice"));
- int ticketCount = Integer.parseInt(matcher.group("ticketCount"));
- int ticketSum = ticketCount * ticketPrice;
- concerts.putIfAbsent(place, new LinkedHashMap<>());
- concerts.get(place).putIfAbsent(singer, 0);
- concerts.get(place).put(singer, concerts.get(place).get(singer) + ticketSum);
- }
- input = scanner.nextLine();
- }
- concerts.forEach((key, value) -> {
- System.out.printf("%s%n", key);
- value.entrySet()
- .stream()
- .sorted((f, s) -> s.getValue().compareTo(f.getValue()))
- .forEach(entry -> System.out.printf("# %s -> %d%n", entry.getKey(), entry.getValue())
- );
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement