Pro2
原始文件为 CPP 代码,本文是转换后的 Markdown 文件。
#include<iostream>
using namespace std;
const int N = 610;
int a[N][N];
int n, l, r, t;
int main()
{
freopen("in.txt","r",stdin);
int res = 0; // 保存结果
cin >> n >> l >> r >> t ;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
int x;
cin >> x;
a[i][j] = a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1] + x; // 输入元素值,并得出前缀和
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)//遍历检查
{
int s, m;
int x1, y1, x2, y2;//得出区域的右下角和左上角
x1 = max(1, i - r);
y1 = max(1, j - r);
x2 = min(n, i + r);
y2 = min(n, j + r);
s = a[x2][y2] - a[x1 - 1][y2] - a[x2][y1 - 1] + a[x1 - 1][y1 - 1];//直接前缀和算
m = (y2 - y1 + 1) * (x2 - x1 + 1); //元素数量
if(s <= t * m) res ++; //判断是否小于等于t
}
cout << res;
}