Guest User

Untitled

a guest
Oct 17th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. /*
  2. ID: ssh04181
  3. LANG: JAVA
  4. TASK: transform
  5. */
  6. import java.io.*;
  7. import java.util.*;
  8.  
  9. class transform {
  10. public static void main (String [] args) throws IOException {
  11. BufferedReader f = new BufferedReader(new FileReader("transform.in"));
  12. PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("transform.out")));
  13.  
  14. int N = Integer.parseInt(f.readLine());
  15. int[][] origin = new int[N][N];
  16. int[][] transform = new int[N][N];
  17.  
  18. for(int i = 0; i< N; i++){
  19. for(int j = 0; j < N; j++){
  20. origin[i][j] = f.read();
  21. }
  22. f.read();
  23. }
  24.  
  25. for(int i = 0; i< N; i++){
  26. for(int j = 0; j < N; j++){
  27. transform[i][j] = f.read();
  28. }
  29. f.read();
  30. }
  31.  
  32.  
  33.  
  34.  
  35. //90 rotate
  36. boolean is90rotate = true;
  37. for(int i =0; i < N; i++){
  38. for(int j = 0; j < N ; j++){
  39. if(origin[i][j] != transform[j][(N-1)-i]){
  40. is90rotate = false;
  41. break;
  42. }
  43. }
  44. if(!is90rotate) break;
  45. }
  46. if(is90rotate){
  47. out.println("1");
  48. out.close();
  49. System.exit(0);
  50. }
  51.  
  52.  
  53.  
  54.  
  55. //180 rotate
  56. boolean is180rotate = true;
  57. for(int i =0; i < N; i++){
  58. for(int j = 0; j < N ; j++){
  59. if(origin[i][j] != transform[(N-1)-i][(N-1)-j]){
  60. is180rotate = false;
  61. break;
  62. }
  63. }
  64. if(!is180rotate) break;
  65. }
  66. if(is180rotate){
  67. out.println("2");
  68. out.close();
  69. System.exit(0);
  70. }
  71.  
  72. //270 rotate
  73. boolean is270rotate = true;
  74. for(int i =0; i < N; i++){
  75. for(int j = 0; j < N ; j++){
  76. if(origin[i][j] != transform[(N-1)-j][i]){
  77. is270rotate = false;
  78. break;
  79. }
  80. }
  81. if(!is270rotate) break;
  82. }
  83. if(is270rotate){
  84. out.println("3");
  85. out.close();
  86. System.exit(0);
  87. }
  88.  
  89. //reflect
  90. boolean isReflect = true;
  91. for(int i = 0; i < N; i++){
  92. for(int j = 0 ; j <N; j++){
  93. if(origin[i][j] != transform[i][(N-1)-j]){
  94. isReflect = false;
  95. break;
  96. }
  97. }
  98. if(!isReflect) break;
  99. }
  100. if(isReflect){
  101. out.println("4");
  102. out.close();
  103. System.exit(0);
  104. }
  105.  
  106. //combinated
  107. boolean isCombi = true;
  108. for(int i = 0; i < N; i++){
  109. for(int j = 0 ; j <N; j++){
  110. if(origin[i][j] != transform[(N-1)-j][(N-1)-i]){
  111. isCombi = false;
  112. break;
  113. }
  114. }
  115. if(!isCombi) break;
  116. }
  117. if(!isCombi){
  118. isCombi = true;
  119. for(int i = 0; i < N; i++){
  120. for(int j = 0 ; j <N; j++){
  121. if(origin[i][j] != transform[j][i]){
  122. isCombi = false;
  123. break;
  124. }
  125. }
  126. if(!isCombi) break;
  127. }
  128. }
  129. if(!isCombi){
  130. isCombi = true;
  131. for(int i = 0; i < N; i++){
  132. for(int j = 0 ; j <N; j++){
  133. if(origin[i][j] != transform[(N-1)-i][j]){
  134. isCombi = false;
  135. break;
  136. }
  137. }
  138. if(!isCombi) break;
  139. }
  140. }
  141. if(isCombi){
  142. out.println("5");
  143. out.close();
  144. System.exit(0);
  145. }
  146.  
  147.  
  148. //original
  149. boolean isOrigin = true;
  150. for(int i = 0; i< N; i++){
  151. for(int j = 0; j < N; j++){
  152. if(origin[i][j] != transform[i][j]){
  153. isOrigin = false;
  154. break;
  155. }
  156. }
  157. if(!isOrigin) break;
  158. }
  159. if(isOrigin){
  160. out.println("6");
  161. out.close();
  162. System.exit(0);
  163. }
  164.  
  165. //invalid
  166. out.println("7");
  167. out.close();
  168. System.exit(0);
  169. }
  170. }
Add Comment
Please, Sign In to add comment