#include <bits/stdc++.h>
using
namespace
std;
#define P 51
int
count1s(
int
start_i,
int
start_j,
int
end_i,
int
end_j,
int
mat[][P])
{
int
count = 0;
for
(
int
x = start_i; x < end_i; x++) {
for
(
int
y = start_j; y < end_j; y++) {
if
(mat[x][y] == 1)
count++;
}
}
return
count;
}
int
findMinimumCount(
int
N,
int
M,
int
A,
int
B,
int
mat[][P])
{
int
minimum = 1e9;
for
(
int
i = 0; i < N; i++) {
for
(
int
j = 0; j < M; j++) {
if
(i + A <= N && j + B <= M) {
int
count
= count1s(i, j, i + A, j + B, mat);
minimum = min(count, minimum);
}
if
(i + B <= N && j + A <= M) {
int
count
= count1s(i, j, i + B, j + A, mat);
minimum = min(count, minimum);
}
}
}
return
minimum;
}
int
main()
{
int
A = 2, B = 2;
int
N = 3, M = 4;
int
mat[P][P] = { { 1, 0, 1, 0 },
{ 0, 1, 0, 1 },
{ 1, 0, 1, 0 } };
cout << findMinimumCount(N, M, A, B, mat);
}
0 comments:
Post a Comment