1007. Maximum Subsequence Sum (25)
来源:互联网 发布:数据挖掘硕士 编辑:程序博客网 时间:2024/06/02 03:58
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, Ni+1, ..., Nj } where 1 <= i <= j <= K. TheMaximum Subsequence is the continuous subsequence which has the largest sum of its elements. For example, given sequence { -2, 11, -4, 13, -5, -2 }, its maximum subsequence is { 11, -4, 13 } with the largest sum being 20.
Now you are supposed to find the largest sum, together with the first and the last numbers of the maximum subsequence.
Input Specification:
Each input file contains one test case. Each case occupies two lines. The first line contains a positive integer K (<= 10000). The second line contains K numbers, separated by a space.
Output Specification:
For each test case, output in one line the largest sum, together with the first and the last numbers of the maximum subsequence. The numbers must be separated by one space, but there must be no extra space at the end of a line. In case that the maximum subsequence is not unique, output the one with the smallest indices i and j (as shown by the sample case). If all the K numbers are negative, then its maximum sum is defined to be 0, and you are supposed to output the first and the last numbers of the whole sequence.
Sample Input:10-10 1 2 3 4 -5 -23 3 7 -21Sample Output:
10 1 4
#include <iostream>#include <cstdio>#include <vector>#include <limits>using namespace std;int main(){int k;scanf("%d", &k);vector<int> nums(k);for(int i = 0; i < k; ++i){scanf("%d", &nums[i]);}int tmpsum = 0, right = k - 1, count = 0, tmpcount = 0;int sum = numeric_limits<int>::min();for(size_t i = 0; i < nums.size(); ++i){if(tmpsum < 0){tmpsum = nums[i];tmpcount = 1;}else{tmpsum += nums[i];++tmpcount;}if(sum < tmpsum){sum = tmpsum;count = tmpcount;right = i;}}if(sum < 0) printf("0 %d %d", nums[0], nums.back());else{printf("%d %d %d", sum, nums[right - count + 1], nums[right]);}return 0;}
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 1007. Maximum Subsequence Sum (25)
- 关于SQLite索引对写入性能影响的测试
- Web常用功能测试总结
- linux增加swap空间
- 在线程池(ExecutorService)中使用Threadlocal时,需要注意他的复位操作
- Android数据库ORM框架:GreenDao在AndroidStudio中使用
- 1007. Maximum Subsequence Sum (25)
- 部署Postfix+MySQL+Dovecot+Postfixadmin+Extmail邮件系统(一)
- jquery插件大全
- html mailto
- 01背包问题详解
- iOS开发笔记--彩色小图标显示方法
- 测试杯子(微软的一个软件测试面试题目)
- 数据库性能优化之SQL语句优化
- Android4.3 蓝牙BLE初步(收藏)