Advertisement
Guest User

Jedi CodeX

a guest
Jun 16th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8.  
  9. public class JediCodeX {
  10.     public static void main(String[] args) throws IOException {
  11.         BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  12.  
  13.         int lines = Integer.parseInt(bf.readLine());
  14.         StringBuilder jediText = new StringBuilder();
  15.         while (lines > 0) {
  16.             String line = bf.readLine();
  17.             jediText.append(line);
  18.             lines--;
  19.         }
  20.         String namePattern = bf.readLine();
  21.         String messagePattern = bf.readLine();
  22.         int[] indexes = Arrays.stream(bf.readLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
  23.  
  24.         ArrayList<String> nameList = new ArrayList<>();
  25.         ArrayList<String> messageList = new ArrayList<>();
  26.  
  27.         Matcher nameMatcher = Pattern.compile(namePattern + "([a-zA-Z]+)").matcher(jediText);
  28.         Matcher messageMatcher = Pattern.compile(messagePattern + "([a-zA-Z0-9]+)").matcher(jediText);
  29.  
  30.         addToList(nameMatcher, namePattern, nameList);
  31.         addToList(messageMatcher, messagePattern, messageList);
  32.  
  33.         //queryPart
  34.         queryJedies(indexes,messageList,nameList);
  35.     }
  36.  
  37.     private static void addToList(Matcher matcher, String pattern, ArrayList<String> list) {
  38.         while (matcher.find()) {
  39.             String group = matcher.group(1);
  40.             if (group.length() == pattern.length()) {
  41.                 list.add(group);
  42.             }
  43.         }
  44.     }
  45.     private static void queryJedies(int[] indexes, ArrayList<String> messages, ArrayList<String> names){
  46.         for (int i = 0; i < Math.min(indexes.length,names.size()); i++) {
  47.             int index = indexes[i];
  48.             if (index <= messages.size()&&index!=0) {
  49.                 System.out.println(names.get(i) + " - " + messages.get(index - 1));
  50.             }
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement