#include<iostream> #include<algorithm> #include<Cstring> using namespace std; int main(){ int n; while(cin>>n){ int a[n+2][n+2],a1[n+2][n+2]; memset(a,0,sizeof(a)); for(int i=1;i<=n;++i) for(int m=1;m<=n;++m) scanf("%d",&a[i][m]); int ans=-0x3f3f3f; for(int k=1;k<=n;++k){ memset(a1,0,sizeof(a1)); for(int i=k;i<=n;++i) for(int m=1;m<=n;++m) a1[m][i]=a1[m][i-1]+a[m][i]; for(int i=k;i<=n;++i){ for(int m=1;m<=n;++m){ a1[m][i]=max(a1[m][i],a1[m-1][i]+a1[m][i]); ans=max(ans,a1[m][i]); } } } cout<<ans<<endl; } } |
Double click to view unformatted code.