题目
代码
#include <iostream>
using namespace std;
int main() {
int n,L,r=0;
double t=0;
cin>>n;
cin>>L;
cin>>r;
cin>>t;
int arr[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>arr[i][j];
}
}
int presum[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j!=0) presum[i][j]=presum[i][j-1]+arr[i][j];
else{
if(i==0) presum[i][j]=arr[i][j];
else presum[i][j]=presum[i-1][n-1]+arr[i][j];
}
}
}
int ans=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int up,down,left,right=0;
if(i-r<0) up=0;
else up=i-r;
if(i+r>=n) down=n-1;
else down=i+r;
if(j-r<0) left=0;
else left=j-r;
if(j+r>=n) right=n-1;
else right=j+r;
double sum=0;
for(int k=up;k<=down;k++){
if(left-1<0){
if(k-1>=0) sum+=presum[k][right]-presum[k-1][n-1];
else sum+=presum[k][right];
}
else sum+=presum[k][right]-presum[k][left-1];
}
if(sum==0) sum+=arr[i][j];
double aver = sum/((down-up+1)*(right-left+1));
if(aver<=t) ans++;
}
}
cout<<ans;
return 0;
}