만약... 면

http://icpc.upc.edu.cn/problem.php?cid=1700&pid=1
#include
#include
using namespace std;
int n,m,i,j,k,l,ans,a[1000][1000],b[1000][1000];
int main() {
    scanf("%d%d",&n,&m);
    for (i=1; i<=n; i++)
        for (j=1; j<=m; j++) {
            scanf("%d",&a[i][j]);
            b[i][j]+=b[i][j-1]+a[i][j];
        }
    for (i=1; i<=m; i++)
        for (j=i; j<=m; j++) {
            k=0;
            for (l=1; l<=n; l++) {
                k+=b[l][j]-b[l][i-1];
                if (k<0) k=0;
                ans=max(ans,k);
            }
        }
    printf("%d
",ans); }

좋은 웹페이지 즐겨찾기