博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1007. Maximum Subsequence Sum (25)——PAT (Advanced Level) Practise
阅读量:4588 次
发布时间:2019-06-09

本文共 2031 字,大约阅读时间需要 6 分钟。

题目信息:

1007. Maximum Subsequence Sum (25)

时间限制
400 ms
内存限制
32000 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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. The Maximum 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 -21
Sample Output:
10 1 4

代码如下:

#include 
#include
using namespace std;int main(){ int n, t, s = 0, e, mx = 0, tmx = 0, ts, te; cin >> n; vector
vec; bool flag = 0; for (int i = 0; i < n; i++) { cin >> t; if (t>=0) flag = 1; if (mx >= 0) { mx += t; e = i; } else { mx = t; s = e = i; } if (mx > tmx || (mx == 0 && tmx == 0)) { tmx = mx; ts = s; te = e; } vec.push_back(t); } if (flag) { cout << tmx << " " << vec[ts] << " " << vec[te] << endl; } else cout << "0 " << vec[0] << " " << vec[vec.size() - 1] << endl; return 0;}

转载于:https://www.cnblogs.com/xyyh/p/4382643.html

你可能感兴趣的文章
调用底层不能直接访问的类和方法
查看>>
清理缓存的方法 #DF
查看>>
JAVA array,map 转 json 字符串
查看>>
APICloud模块 aMapLBS.singleAddress在ios返回的是定位而不是地址
查看>>
【ZOJ】1610 Count the Colors
查看>>
[beta cycle]daily scrum7_2.22
查看>>
BSD历史
查看>>
Climbing Stairs
查看>>
css遮罩层与fixed
查看>>
HTML5 Input 类型
查看>>
linux c语言 select函数用法 分类: arm-linux-...
查看>>
浏览网页出现右键查看源代码无效时
查看>>
动态生成的元素绑定KindEditor
查看>>
关于datatable的数据绑定问题
查看>>
c#函数中处理对象的问题
查看>>
转 top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight
查看>>
2017-12-27练习
查看>>
NET设计规范(二) 命名规范
查看>>
VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2
查看>>
SSL延迟
查看>>