卡常,用函数或内联函数都会超时,define宏替换写的伪函数可以过
#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define de(x) cout<<#x<<" = "<<x<<" "
#define deg(x) cout<<#x<<" = "<<x<<endl
#define q(x1,y1,x2,y2) s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]
using namespace std;
const int N=10010,M=10010;
typedef pair<int,int> PII;
int s[N][N];
int qy(int x1,int y1,int x2,int y2)
{
return s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1];
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>s[i][j];
s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
}
int cnt=0;
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
{
for(int l=1,r=1;r<=m;r++)
{
while(q(i,l,j,r)>k&&l<=r)
{
//cout<<qy(x1,y1,x2,y2)<<"l++"<<endl;
l++;
}
cnt+=(r-l+1);
//cout<<l<<"-----"<<qy(x1,y1,x2,y2)<<endl;
}
//cout<<cnt<<endl;
}
cout<<cnt<<endl;
return 0;
}