20170902_poj1050

//
//  main.cpp
//  poj1050
//
//  Created by Haoying Zhao on 17/9/2. 8:51
//  Copyright © 2017年 Haoying Zhao. All rights reserved.
//

#include 
#include 
using namespace std;
int a[101][101];
int t[101];

int main(int argc, const char * argv[]) {
    int N;
    cin >> N;
    memset(t, 0, sizeof(t));
    for(int i = 0; i <= N; ++i)
        for(int j = 0; j <= N; ++j)
            cin >> a[i][j];
    int max = INT_MIN;
    for(int i = 0; i < N; ++i)
        for(int j = i; j < N; ++j) {
            for(int m = 0; m < N; ++m)
                for(int n = i; n <= j; ++n)
                    if(n == i)
                        t[m] = a[n][m];
                    else t[m] += a[n][m];
            int tt[101];
            memset(tt, 0, sizeof(tt));
            for(int k = 0; k < N; ++k)
                if(k == 0) {
                    tt[k] = t[k];
                    if(tt[k] > max)
                        max = tt[k];
                }
                else if(t[k] > 0) {
                    tt[k] = tt[k-1] + t[k];
                    if(tt[k] > max)
                        max = tt[k];
                }
                else {
                    tt[k] = t[k];
                    if(tt[k] > max)
                        max = tt[k];
                }
            }
    cout << max;
    return 0;
}

你可能感兴趣的:(20170902_poj1050)