1801.cpp
来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 66 行
CPP
66 行
#include <iostream>
using namespace std;
char paint[101][101];
char white[101][101];
int m, n, r, c;
void change(int a, int b, int c, int d)
{
int i, j;
for (i = a; i < a + c; i++)
{
for (j = b; j < b + d; j++)
{
if (white[i][j] == '0')
{
white[i][j] = '1';
}
else if (white[i][j] == '1')
{
white[i][j] = '0';
}
}
}
}
int main()
{
int i, j, step;
while (cin >> m >> n >> r >> c)
{
if (m == 0 && n == 0 && r == 0 && c == 0)
{
break;
}
for (i = 0; i < m; i++)
{
scanf("%s", paint[i]);
for (j = 0; j < n; j++)
{
white[i][j] = '0';
}
}
for (step = 0, i = 0; i < m - r + 1; i++)
{
for (j = 0; j < n - c + 1; j++)
{
if (white[i][j] != paint[i][j])
{
change(i, j, r, c);
step++;
}
}
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (white[i][j] != paint[i][j])
{
step = -1;
break;
}
}
}
cout << step << endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?