๐ ์ด๋ ต๊ฒ ์๊ฐํ๋๋ฐ (0,0)๋ถํฐ ์ฐจ๋ก๋๋ก A,B๊ฐ ๊ฐ์์ง ๋น๊ตํ๊ณ ๋ค๋ฅด๋ฉด ์์์ ์ ๊ธฐ์ค์ผ๋ก 3X3์ธ ๋ถ๋ถ์ ๋ค์ง์ด์ฃผ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
๐จ ์ฐธ๊ณ -์ ์ด๊ฒ์ด ์ต์ ํ์๊ฐ ๋๋๊ฐ
๐จ ์ฐธ๊ณ ์ฝ๋
์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [Y, X] = input.shift().split(" ").map(Number);
const A = [];
const B = [];
for (let i = 0; i < Y; i++) {
A.push(input[i].split("").map(Number));
}
for (let i = Y; i < Y + Y; i++) {
B.push(input[i].split("").map(Number));
}
//๋ค์ง๋ ํจ์
const flip = (x, y) => {
if (x + 3 > X || y + 3 > Y) {
return;
}
for (let i = y; i < y + 3; i++) {
for (let j = x; j < x + 3; j++) {
if (A[i][j] === 1) {
A[i][j] = 0;
} else {
A[i][j] = 1;
}
}
}
};
//A,B ๋น๊ตํ๋ ํจ์
const compare = () => {
for (let i = 0; i < Y; i++) {
for (let j = 0; j < X; j++) {
if (A[i][j] !== B[i][j]) {
return false;
}
}
}
return true;
};
let count = 0;
for (let i = 0; i < Y; i++) {
for (let j = 0; j < X; j++) {
if (A[i][j] !== B[i][j]) {
count++;
flip(j, i);
}
}
}
if (compare()) {
console.log(count);
} else {
console.log(-1);
}