第2 - N + 1行:矩陣中的元素,每行M個數,中間用空格隔開。(-10^9 <= Mii <= 10^9)Output輸出和的最大值。如果所有數都是負數,就輸出0。Sample Input
3 3 -1 3 -1 2 -1 3 -3 1 2Sample Output
7
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int N[505][505];
memset(N,0,sizeof(N));
int n,m;
cin>>m>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>N[i][j];
N[i][j]+=N[i-1][j];
}
}
int sum,ans=0;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
sum=0;
for(int k=1;k<=m;k++)
{
sum+=N[j][k]-N[i-1][k];
if(sum<0)
sum=0;
ans=max(sum,ans);
}
}
}
cout<<ans<<endl;
return 0;
}