View Code of Problem 182

#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<vector>
#include<stack>
using namespace std;
int maxsub(int a[], int n)
{
	int i, max = 0, b = 0;
	for (i = 0; i < n; i++)
	{
		if (b > 0)
			b += a[i];
		else
			b = a[i];
		if (b > max)
			max = b;
	}
	return max;
}
int main()
{
	int i, j, k, flag;
	int n, m, t;
	string str, s;
	int maxsubrec, maxsubarr;
	int dp[101][101], arr[101];
	cin >> n;
	
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				cin >> dp[i][j];
		maxsubrec = 0;
		for (i = 0; i < n; i++)
		{
			memset(arr, 0, sizeof(arr));
			for (j = i; j < n; j++)
			{
				for (k = 0; k < n; k++)
					arr[k] += dp[j][k];
				maxsubarr = maxsub(arr, n);
				if (maxsubarr > maxsubrec) maxsubrec = maxsubarr;
			}
		}
		cout << maxsubrec << endl;
	
	return 0;
}
/*
F:\temp\23301343.139460\Main.cc: In function 'int main()':
F:\temp\23301343.139460\Main.cc:38: error: 'memset' was not declared in this scope
*/

Double click to view unformatted code.


Back to problem 182