/*
* POJ_3363.cpp
*
* Created on: 2013年10月12日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 105;
int n, m, r, c;
char a[maxn][maxn];
bool b[maxn][maxn];
void init() {
int i, j;
for (i = 0; i < n; ++i) {
scanf("%s", a[i]);
for (j = 0; j < m; ++j) {
a[i][j] = a[i][j] - '0';
b[i][j] = false;
}
}
}
void work() {
int i, j, k, w;
int ans = 0;
for (i = 0; i <= n - r; ++i) {
for (j = 0; j <= m - c; ++j) {
if (a[i][j] != b[i][j]) {
ans++;
for (k = i; k < i + r; ++k) {
for (w = j; w < j + c; ++w) {
b[k][w] = !b[k][w];
}
}
}
}
}
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
if (a[i][j] != b[i][j]) {
printf("-1\n");
return;
}
}
}
printf("%d\n", ans);
}
int main() {
while (scanf("%d%d%d%d", &n, &m, &r, &c) != EOF, n || m || r || c) {
init();
work();
}
return 0;
}
(贪心5.2.10)POJ 3363 Annoying painting tool
最新推荐文章于 2017-10-08 12:19:37 发布