View Code of Problem 182

#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <map>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

int main(void)
{
    long long n;
    while (cin >> n)
    {
        long long arr[n][n];
        long long total[n][n];
        for (long long i = 0; i < n; i++)
        {
            for (long long j = 0; j < n; j++)
            {
                cin >> arr[i][j];
                total[i][j] = arr[i][j];
                if (i != 0)
                    total[i][j] += total[i - 1][j];
            }
        }
        long long ans =LONG_LONG_MIN;
        for (long long i = 0; i < n; i++)
        {
            long long result[n];
            for (long long j = i; j < n; j++)
            {

                for (long long k = 0; k < n; k++)
                {
                    if (i == 0)
                        result[k] = total[j][k];
                    else
                        result[k] = total[j][k] - total[i - 1][k];
                }
            }
            long long mmax[n];
            mmax[0] = result[0];
            long long maxx = LONG_LONG_MIN;
            for (long long j = 1; j < n; j++)
            {
                mmax[j] = (mmax[j - 1] > 0) ? mmax[j - 1] + result[j] : result[j];
                if (maxx < mmax[j])
                    maxx = mmax[j];
            }
            ans = ans < maxx ? maxx : ans;
        }
        cout << ans << endl;
    }
}

/*
Main.cc: In function `int main()':
Main.cc:31: error: `LONG_LONG_MIN' undeclared (first use this function)
Main.cc:31: error: (Each undeclared identifier is reported only once for each function it appears in.)
*/

Double click to view unformatted code.


Back to problem 182