using
System;
class
GFG
{
static
int
MAX = 1000;
static
int
cntMatrices(
int
[,] arr,
int
N,
int
M,
int
K)
{
int
cnt = 0;
int
[,] pre =
new
int
[N + 1, M + 1];
for
(
int
i = 1; i <= N; i++)
{
for
(
int
j = 1; j <= M; j++)
{
pre[i, j] = arr[i - 1, j - 1] + pre[i - 1, j] +
pre[i, j - 1] - pre[i - 1, j - 1];
}
}
for
(
int
i = 1; i <= N; i++)
{
for
(
int
j = 1; j <= M; j++)
{
for
(
int
l = i, r = j;
l > 0 && r > 0; l--, r--)
{
int
sum1 = (K * (i - l + 1) *
(i - r + 1));
int
sum2 = pre[i, j] - pre[l - 1, r] -
pre[l, r - 1] + pre[l - 1, r - 1];
if
(sum1 <= sum2)
cnt++;
}
}
}
return
cnt;
}
public
static
void
Main(
string
[] args)
{
int
[,] arr = { { 2, 2, 3 },
{ 3, 4, 5 },
{ 4, 5, 5 } };
int
K = 4;
int
N = arr.GetLength(0);
int
M = arr.GetLength(0);
Console.WriteLine( cntMatrices(arr, N, M, K));
}
}