Guest User

Untitled

a guest
Jun 16th, 2016
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.03 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]" + "{" +
  28.                 namePattern.length()+ "})" + ("(?![a-zA-Z])")).matcher(jediText);
  29.         Matcher messageMatcher =
  30.                 Pattern.compile(messagePattern + "([a-zA-Z0-9]"  + "{" +
  31.                                 messagePattern.length() + "})" +"(?![a-zA-Z0-9])").matcher(jediText);
  32.  
  33.         addToList(nameMatcher, nameList);
  34.         addToList(messageMatcher ,messageList);
  35.  
  36.         //queryPart
  37.         queryJedies(indexes, messageList, nameList);
  38.     }
  39.  
  40.     private static void addToList(Matcher matcher, ArrayList<String> list) {
  41.         while (matcher.find()) {
  42.             list.add(matcher.group(1));
  43.         }
  44.     }
  45.  
  46.     private static void queryJedies(int[] indexes, ArrayList<String> messages, ArrayList<String> names) {
  47.         for (int i = 0; i < Math.min(indexes.length, names.size()); i++) {
  48.             int index = indexes[i];
  49.             if (index <= messages.size()) {
  50.                 System.out.println(names.get(i) + " - " + messages.get(index - 1));
  51.             }
  52.         }
  53.     }
  54. }
Add Comment
Please, Sign In to add comment