on
[백준][Java] 1080번 행렬 (Greedy)
[백준][Java] 1080번 행렬 (Greedy)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));
public static void main( String [] args) throws IOException{
String [] str = br.readLine(). split ( " " );
int N = Integer. parseInt (str[ 0 ]);
int M = Integer. parseInt (str[ 1 ]);
int [][] A = new int [N][M];
int [][] B = new int [N][M];
for ( int i = 0 ; i < N; i + + ) {
char [] input = br.readLine().toCharArray();
for ( int j = 0 ; j < M; j + + ) {
A[i][j] = input[j] - '0' ;
}
}
for ( int i = 0 ; i < N; i + + ) {
char [] input = br.readLine().toCharArray();
for ( int j = 0 ; j < M; j + + ) {
B[i][j] = input[j] - '0' ;
}
}
// for (int i = 0; i < B.length; i++) {
// for (int j = 0; j < B[0].length; j++) {
// System.out.print(A[i][j]);
// }
// System.out.println();
// }
int res = 0 ;
for ( int i = 0 ; i < N - 2 ; i + + ) {
for ( int j = 0 ; j < M - 2 ; j + + ) {
if (A[i][j] ! = B[i][j]) {
res + + ;
for ( int k = i; k < i + 3 ;k + + ) {
for ( int l = j; l < j + 3 ; l + + ) {
if (A[k][l] = = 1 ) A[k][l] = 0 ;
else A[k][l] = 1 ;
}
}
}
}
}
for ( int i = 0 ; i < N; i + + ) {
for ( int j = 0 ; j < M; j + + ) {
if (A[i][j] ! = B[i][j]) {
System . out . println ( - 1 );
return ;
}
}
}
System . out . println (res);
// System.out.println();
// for (int i = 0; i < B.length; i++) {
// for (int j = 0; j < B[0].length; j++) {
// System.out.print(A[i][j]);
// }
// System.out.println();
// }
// bw.write("");
// bw.flush();
// bw.close();
}
}
from http://aig2029.tistory.com/267 by ccl(A) rewrite - 2021-09-11 10:27:07