Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ID: ssh04181
- LANG: JAVA
- TASK: transform
- */
- import java.io.*;
- import java.util.*;
- class transform {
- public static void main (String [] args) throws IOException {
- BufferedReader f = new BufferedReader(new FileReader("transform.in"));
- PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("transform.out")));
- int N = Integer.parseInt(f.readLine());
- int[][] origin = new int[N][N];
- int[][] transform = new int[N][N];
- for(int i = 0; i< N; i++){
- for(int j = 0; j < N; j++){
- origin[i][j] = f.read();
- }
- f.read();
- }
- for(int i = 0; i< N; i++){
- for(int j = 0; j < N; j++){
- transform[i][j] = f.read();
- }
- f.read();
- }
- //90 rotate
- boolean is90rotate = true;
- for(int i =0; i < N; i++){
- for(int j = 0; j < N ; j++){
- if(origin[i][j] != transform[j][(N-1)-i]){
- is90rotate = false;
- break;
- }
- }
- if(!is90rotate) break;
- }
- if(is90rotate){
- out.println("1");
- out.close();
- System.exit(0);
- }
- //180 rotate
- boolean is180rotate = true;
- for(int i =0; i < N; i++){
- for(int j = 0; j < N ; j++){
- if(origin[i][j] != transform[(N-1)-i][(N-1)-j]){
- is180rotate = false;
- break;
- }
- }
- if(!is180rotate) break;
- }
- if(is180rotate){
- out.println("2");
- out.close();
- System.exit(0);
- }
- //270 rotate
- boolean is270rotate = true;
- for(int i =0; i < N; i++){
- for(int j = 0; j < N ; j++){
- if(origin[i][j] != transform[(N-1)-j][i]){
- is270rotate = false;
- break;
- }
- }
- if(!is270rotate) break;
- }
- if(is270rotate){
- out.println("3");
- out.close();
- System.exit(0);
- }
- //reflect
- boolean isReflect = true;
- for(int i = 0; i < N; i++){
- for(int j = 0 ; j <N; j++){
- if(origin[i][j] != transform[i][(N-1)-j]){
- isReflect = false;
- break;
- }
- }
- if(!isReflect) break;
- }
- if(isReflect){
- out.println("4");
- out.close();
- System.exit(0);
- }
- //combinated
- boolean isCombi = true;
- for(int i = 0; i < N; i++){
- for(int j = 0 ; j <N; j++){
- if(origin[i][j] != transform[(N-1)-j][(N-1)-i]){
- isCombi = false;
- break;
- }
- }
- if(!isCombi) break;
- }
- if(!isCombi){
- isCombi = true;
- for(int i = 0; i < N; i++){
- for(int j = 0 ; j <N; j++){
- if(origin[i][j] != transform[j][i]){
- isCombi = false;
- break;
- }
- }
- if(!isCombi) break;
- }
- }
- if(!isCombi){
- isCombi = true;
- for(int i = 0; i < N; i++){
- for(int j = 0 ; j <N; j++){
- if(origin[i][j] != transform[(N-1)-i][j]){
- isCombi = false;
- break;
- }
- }
- if(!isCombi) break;
- }
- }
- if(isCombi){
- out.println("5");
- out.close();
- System.exit(0);
- }
- //original
- boolean isOrigin = true;
- for(int i = 0; i< N; i++){
- for(int j = 0; j < N; j++){
- if(origin[i][j] != transform[i][j]){
- isOrigin = false;
- break;
- }
- }
- if(!isOrigin) break;
- }
- if(isOrigin){
- out.println("6");
- out.close();
- System.exit(0);
- }
- //invalid
- out.println("7");
- out.close();
- System.exit(0);
- }
- }
Add Comment
Please, Sign In to add comment