Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class JediCodeX {
- public static void main(String[] args) throws IOException {
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- int lines = Integer.parseInt(bf.readLine());
- StringBuilder jediText = new StringBuilder();
- while (lines > 0) {
- String line = bf.readLine();
- jediText.append(line);
- lines--;
- }
- String namePattern = bf.readLine();
- String messagePattern = bf.readLine();
- int[] indexes = Arrays.stream(bf.readLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
- ArrayList<String> nameList = new ArrayList<>();
- ArrayList<String> messageList = new ArrayList<>();
- Matcher nameMatcher = Pattern.compile(namePattern + "([a-zA-Z]+)").matcher(jediText);
- Matcher messageMatcher = Pattern.compile(messagePattern + "([a-zA-Z0-9]+)").matcher(jediText);
- addToList(nameMatcher, namePattern, nameList);
- addToList(messageMatcher, messagePattern, messageList);
- //queryPart
- queryJedies(indexes,messageList,nameList);
- }
- private static void addToList(Matcher matcher, String pattern, ArrayList<String> list) {
- while (matcher.find()) {
- String group = matcher.group(1);
- if (group.length() == pattern.length()) {
- list.add(group);
- }
- }
- }
- private static void queryJedies(int[] indexes, ArrayList<String> messages, ArrayList<String> names){
- for (int i = 0; i < Math.min(indexes.length,names.size()); i++) {
- int index = indexes[i];
- if (index <= messages.size()&&index!=0) {
- System.out.println(names.get(i) + " - " + messages.get(index - 1));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement