http://acm.sjtu.edu.cn/OnlineJudge/problem/1006
C++程序编写
该命题可以看做是求数组的最大子数组问题,且最大子数组中元素最小个数人为2(即最大子数组元素的个数不能为1):
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int *pi = new int[n];
for (int i = 0; i < n; i++)
cin >> *(pi + i);
int sum = *pi;
int result = *pi;
for (int i = 1; i < n; i++)
{
if (sum >= 0)
sum += *(pi + i);
else
sum = *(pi + i);
result = result>sum ? result : sum;
}
bool flag = true;
for (int i = 0; i < n; i++)
if (result == *(pi + i))
{
flag = false;
break;
}
if (!flag)
cout << "Game Over" << endl;
else if (result >= 0)
cout << result << endl;
else
cout << "Game Over" << endl;
delete[]pi;
return 0;
}
数组的最大子数组问题可参考:http://www.cnblogs.com/waytofall/archive/2012/04/10/2439820.html