Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import java.util.stream.Collectors;
- public class StarEnigma {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int messages = Integer.parseInt(sc.nextLine());
- List<String> attackedPlanets = new ArrayList<>();
- List<String> destroyedPlanets = new ArrayList<>();
- for (int i = 0; i < messages; i++) {
- String initMessage = sc.nextLine();
- String code = "star";
- StringBuilder newMessage = new StringBuilder();
- int count = 0;
- for (int j = 0; j < initMessage.length(); j++) {
- char c = initMessage.charAt(j);
- if (code.indexOf(initMessage.toLowerCase().charAt(j))!= -1) {
- count++;
- }
- }
- for (int j = 0; j < initMessage.length(); j++) {
- char c = initMessage.charAt(j);
- char d = (char)(c - count);
- newMessage.append(d);
- }
- String regex = "@([A-Za-z]*)[^@\\-!:>]*?:[^@\\-!:>]*?([\\d]+)[^@\\-!:>]*?![^@\\-!:>]*?(A|D)[^@\\-!:>]*?![^@\\-!:>]*?->[^@\\-!:>]*?([\\d]+)";
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(newMessage);
- while (matcher.find()) {
- String planetName = matcher.group(1);
- Integer planetPopulation = Integer.parseInt(matcher.group(2));
- String attackType = matcher.group(3);
- Integer soldierCount = Integer.parseInt(matcher.group(4));
- if (matcher.group(3).equals("A")) {
- attackedPlanets.add(planetName);
- } else {
- destroyedPlanets.add(planetName);
- }
- }
- }
- if (attackedPlanets.size() == 0) {
- System.out.println("Attacked planets: 0");
- } else {
- System.out.printf("Attacked planets: %d%n", attackedPlanets.size());
- attackedPlanets.stream().sorted().forEach(e -> {
- System.out.printf("-> %s%n", e);
- });
- }
- if (destroyedPlanets.isEmpty()) {
- System.out.println("Destroyed planets: 0");
- } else {
- System.out.printf("Destroyed planets: %d%n", destroyedPlanets.size());
- destroyedPlanets.stream().sorted().forEach(e -> {
- System.out.printf("-> %s%n", e);
- });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement