#include <bits/stdc++.h>
using namespace std;
int n,l,r,t;
long long res = 0;
int a[605][605];
long long sum[605][605] = {0};
int fun(int xl,int xr,int yl,int yr){
int x = xr - xl + 1,y = yr - yl + 1;
long long cnt = 0;
long long kase = x*y;
for (int i = xl; i <= xr ; ++i) {
cnt += sum[i][yr] - sum[i][yl-1]; //计算邻域总和
}
if(cnt <= t * kase) return 1;
else return 0;
}
int main() {
cin>>n>>l>>r>>t;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cin>>a[i][j];
sum[i][j] = sum[i][j-1] + a[i][j]; //计算前缀和
}
}
for (int i = 0; i < n; ++i) {
int xl,xr,yl,yr;
xl = max(0,i-r);
xr = min(n-1,i+r);
for (int j = 0; j < n; ++j) {
yl = max(0,j-r);
yr = min(n-1,j+r);
res += fun(xl,xr,yl,yr);
}
}
cout<<res;
return 0;
}
csp邻域均值
最新推荐文章于 2024-03-18 16:23:40 发布