반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | // https://mizzo-dev.tistory.com/entry/baekjoon1080 #include <iostream> #define rep(i,n) for(int i=0;i<n;i++) using namespace std; int n, m; char arr1[51][51], arr2[51][51]; bool chk[51][51]; int cnt; void convert(int x, int y) { if (x + 2 >= n) return; // 세로 범위 벗어남 if (y + 2 >= m) return; // 가로 범위 벗어남 for (int i = x; i < x + 3; i++) { for (int j = y; j < y + 3; j++) // 0, 1 토글 chk[i][j] = !chk[i][j]; } cnt++; } void func(){ for (int i = 0;i < n; i++) { for (int j = 0;j < m;j++) { if (chk[i][j]) // A, B 다르면 -> chk[i][j] == 1 convert(i, j); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; rep(i, n) { rep(j, m) cin >> arr1[i][j]; } rep(i, n) { rep(j, m) { cin >> arr2[i][j]; if (arr1[i][j] != arr2[i][j]) // A, B 다르면 1 chk[i][j] = 1; } } func(); rep(i, n) { rep(j, m) { if (chk[i][j]) { cout << -1; return 0; } } } cout << cnt; } | cs |
반응형