Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 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.List;
  6.  
  7. public class Main {
  8. public static void main(String[] args) throws IOException {
  9. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  10. String input = reader.readLine();
  11. int rotation = Integer.parseInt(input.substring(input.indexOf("(") + 1, input.indexOf(")")));
  12. rotation %= 360;
  13. List<String> lines = new ArrayList<>();
  14. for (String line = reader.readLine(); !line.equals("END"); line = reader.readLine()) {
  15. lines.add(line);
  16. }
  17. int maxLength = 0;
  18. for (String line : lines) {
  19. int length = line.length();
  20. if (length > maxLength){
  21. maxLength = length;
  22. }
  23. }
  24. char[][] matrix = fillMatrix(lines, maxLength);
  25. StringBuilder sb = new StringBuilder();
  26. switch (rotation){
  27. case 0:
  28. append0(matrix, sb);
  29. break;
  30. case 90:
  31. append90(matrix, sb);
  32. break;
  33. case 180:
  34. append180(matrix, sb);
  35. break;
  36. case 270:
  37. append270(matrix, sb);
  38. break;
  39. }
  40. System.out.println(sb);
  41. }
  42.  
  43. private static char[][] fillMatrix(List<String> lines, int maxLength) {
  44. char[][] matrix = new char[lines.size()][maxLength];
  45. for (int row = 0; row < lines.size(); row++) {
  46. String line = lines.get(row);
  47. for (int col = 0; col < maxLength; col++) {
  48. if (col < line.length()){
  49. matrix[row][col] = line.charAt(col);
  50. }else{
  51. matrix[row][col] = ' ';
  52. }
  53. }
  54. }
  55. return matrix;
  56. }
  57.  
  58. private static void append270(char[][] matrix, StringBuilder sb) {
  59. for (int col = 0; col < matrix[0].length; col++) {
  60. for (int row = 0; row < matrix.length; row++) {
  61. sb.append(matrix[row][matrix[0].length- col - 1]);
  62. }
  63. sb.append(System.lineSeparator());
  64. }
  65. }
  66.  
  67. private static void append180(char[][] matrix, StringBuilder sb) {
  68. for (int row = 0; row < matrix.length; row++) {
  69. for (int col = 0; col < matrix[0].length; col++) {
  70. sb.append(matrix[matrix.length - row - 1][matrix[0].length -col-1]);
  71. }
  72. sb.append(System.lineSeparator());
  73. }
  74. }
  75.  
  76. private static void append90(char[][] matrix, StringBuilder sb) {
  77. for (int col = 0; col < matrix[0].length; col++) {
  78. for (int row = 0; row < matrix.length; row++) {
  79. sb.append(matrix[matrix.length - row - 1][col]);
  80. }
  81. sb.append(System.lineSeparator());
  82. }
  83. }
  84.  
  85. private static void append0(char[][] matrix, StringBuilder sb) {
  86. for (int row = 0; row < matrix.length; row++) {
  87. for (int col = 0; col < matrix[0].length; col++) {
  88. sb.append(matrix[row][col]);
  89. }
  90. sb.append(System.lineSeparator());
  91. }
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement