#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
long long sum[55][55],a[55][55],n,ans;
int d[6000000];
int bais=2500000;
int main()
{
scanf("%lld",&n);
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++){
scanf("%lld",&a[i][j]);
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
}
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++){
for(int x=1; x<=i; x++)
for(int y=1; y<=j; y++)
d[sum[i][j]-sum[i][y-1]-sum[x-1][j]+sum[x-1][y-1]+bais]++;
for(int x=i+1; x<=n; x++)
for(int y=j+1; y<=n; y++)
ans+=d[sum[x][y]-sum[x][j]-sum[i][y]+sum[i][j]+bais];
for(int x=1; x<=i; x++)
for(int y=1; y<=j; y++)
d[sum[i][j]-sum[i][y-1]-sum[x-1][j]+sum[x-1][y-1]+bais]=0;
for(int x=1; x<=i; x++)
for(int y=j+1; y<=n; y++)
d[sum[i][y]-sum[x-1][y]-sum[i][j]+sum[x-1][j]+bais]++;
for(int x=i+1; x<=n; x++)
for(int y=1; y<=j; y++)
ans+=d[sum[x][j]-sum[i][j]-sum[x][y-1]+sum[i][y-1]+bais];
for(int x=1; x<=i; x++)
for(int y=j+1; y<=n; y++)
d[sum[i][y]-sum[x-1][y]-sum[i][j]+sum[x-1][j]+bais]=0;
}
printf("%lld",ans);
return 0;
}
这是我老师的代码,请问bais是什么意思?