fork(4) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. private static boolean checkChar(char c, char n) {
  11. boolean result = false;
  12. switch (n) {
  13. case '2':
  14. if (c == 'a' || c == 'b' || c == 'c') result = true;
  15. break;
  16. case '3':
  17. if (c == 'd' || c == 'e' || c == 'f') result = true;
  18. break;
  19. case '4':
  20. if (c == 'g' || c == 'h' || c == 'i') result = true;
  21. break;
  22. case '5':
  23. if (c == 'j' || c == 'k' || c == 'l') result = true;
  24. break;
  25. case '6':
  26. if (c == 'm' || c == 'n' || c == 'o') result = true;
  27. break;
  28. case '7':
  29. if (c == 'p' || c == 'q' || c == 'r' || c == 's') result = true;
  30. break;
  31. case '8':
  32. if (c == 't' || c == 'u' || c == 'v') result = true;
  33. break;
  34. case '9':
  35. if (c == 'w' || c == 'y' || c == 'z') result = true;
  36. break;
  37. }
  38. return result;
  39. }
  40. public static void main (String[] args) throws java.lang.Exception
  41. {
  42. StringBuilder strbOut = new StringBuilder();
  43.  
  44. String[] nik = rd.readLine().split(" ");
  45. int n = Integer.parseInt(nik[0]);
  46. int k = Integer.parseInt(nik[1]);
  47.  
  48. String[] dic = new String[n];
  49. for (int i = 0; i < n; i++) dic[i] = rd.readLine();
  50.  
  51. int[] lengths = new int[n];
  52. for (int i = 0; i < n; i++) lengths[i] = dic[i].length();
  53.  
  54. int[] nums = new int[k];
  55. for (int i = 0; i < k; i++) nums[i] = Integer.parseInt(rd.readLine());
  56.  
  57. for (int i = 0; i < k; i++) {
  58.  
  59. char[] num = String.valueOf(nums[i]).toCharArray();
  60. int len = num.length;
  61. List<String> words = new ArrayList<>();
  62. for (int j = 0; j < n; j++) {
  63.  
  64. if (lengths[j] == len) {
  65. byte[] flags = new byte[len];
  66. char[] word = dic[j].toCharArray();
  67. for (int s = 0; s < len; s++) {
  68.  
  69. if (checkChar(word[s], num[s])) flags[s] = 1;
  70. } // for for single word
  71. int count = 0;
  72. for (int s = 0; s < len; s++) if (flags[s] == 1) count++;
  73.  
  74. if (count == len) words.add(String.valueOf(dic[j]));
  75. } // end if
  76.  
  77. } // end for j -> dic
  78.  
  79. if (words.size() == 0) strbOut.append("BRAK");
  80. else {
  81. Collections.sort(words);
  82. for (int s = 0; s < words.size(); s++) strbOut.append(words.get(s)).append(' ');
  83. strbOut.delete(strbOut.length() - 1, strbOut.length());
  84. }
  85. strbOut.append("\n");
  86. } // end for i -> nums
  87.  
  88. strbOut.delete(strbOut.length()-1, strbOut.length());
  89. out.write(strbOut.toString().getBytes());
  90. out.flush();
  91. }
  92. }
Success #stdin #stdout 0.08s 32956KB
stdin
6 3
ala
aka
kot
kolor
lokos
lotos
252
272
56567
stdout
aka ala
BRAK
kolor lokos