hdu1231
2015-07-27 21:58
429 查看
dp
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <map>
#include <iterator>
#include <cstring>
#include <cmath>
using namespace std;
int num[10005];
typedef struct {
int sum, first, last;
} rcrd;
rcrd dp[10005];
int main() {
int n;
while (cin >> n && n) {
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++) {
scanf("%d", num+i);
dp[i].sum=num[i];
dp[i].first=dp[i].last=i;
}
for (int i = 1; i < n; i++) {
if (dp[i-1].sum + num[i] >= num[i]) {
dp[i].sum = dp[i-1].sum + num[i];
dp[i].first = dp[i-1].first;
dp[i].last = i;
}
}
int mv = dp[0].sum;
int midx = 0;
for (int i = 1; i < n; i++) if (dp[i].sum > mv) { mv = dp[i].sum; midx = i; }
if (mv >= 0)
printf("%d %d %d\n", dp[midx].sum, num[dp[midx].first], num[dp[midx].last]);
else
printf("%d %d %d\n", 0, num[0], num[n-1]);
}
return 0;
}
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <map>
#include <iterator>
#include <cstring>
#include <cmath>
using namespace std;
int num[10005];
typedef struct {
int sum, first, last;
} rcrd;
rcrd dp[10005];
int main() {
int n;
while (cin >> n && n) {
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++) {
scanf("%d", num+i);
dp[i].sum=num[i];
dp[i].first=dp[i].last=i;
}
for (int i = 1; i < n; i++) {
if (dp[i-1].sum + num[i] >= num[i]) {
dp[i].sum = dp[i-1].sum + num[i];
dp[i].first = dp[i-1].first;
dp[i].last = i;
}
}
int mv = dp[0].sum;
int midx = 0;
for (int i = 1; i < n; i++) if (dp[i].sum > mv) { mv = dp[i].sum; midx = i; }
if (mv >= 0)
printf("%d %d %d\n", dp[midx].sum, num[dp[midx].first], num[dp[midx].last]);
else
printf("%d %d %d\n", 0, num[0], num[n-1]);
}
return 0;
}
相关文章推荐
- Android Context 上下文 你必须知道的一切
- 平衡二叉树
- 动态对象创建(二)重载new和delete
- Android小记:ViewStub的应用
- Android之——短信的备份与还原
- OC里MRC模式含有对象字段类的典型错误代码示范
- 泛型编程和函数指针
- u-boot学习(两):u-boot简要分析
- ActiveMQ 的安装
- VIP FAILOVER DEMONSTRATION
- 【C++】关于编译器错误:error C2572 重定义默认参数 的说明
- 股票学习(K线)
- Tomcat中Servlet与浏览器之间传值乱码解决办法
- 如何打开.pkl的文件
- 设计模式之单件模式
- n的全排列
- 推荐几个我一直在使用chrome小工具(上)
- Linux Mint---安装docky
- 如何将ubuntu文件夹中文名改为英文
- UITableView beginUpdate和endUpdate使用的前提