当前位置:网站首页>1007 maximum subsequence sum (25 points) (PAT class a)
1007 maximum subsequence sum (25 points) (PAT class a)
2022-07-04 19:37:00 【Acacia moon tower】
Problem Description:
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 <iostream>
#include <vector>
using namespace std;
int main() {
int n;
scanf("%d", &n);
vector<int> v(n);
int leftindex = 0, rightindex = n - 1, sum = -1, temp = 0, tempindex = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &v[i]);
temp = temp + v[i];
if (temp < 0) {
temp = 0;
tempindex = i + 1;
} else if (temp > sum) {
sum = temp;
leftindex = tempindex;
rightindex = i;
}
}
if (sum < 0) sum = 0;
printf("%d %d %d", sum, v[leftindex], v[rightindex]);
return 0;
}
边栏推荐
- 2014合肥市第三十一届青少年信息学奥林匹克竞赛(小学组)试题
- Lm10 cosine wave homeopathic grid strategy
- BI技巧丨权限轴
- Online sql to excel (xls/xlsx) tool
- Hough Transform 霍夫变换原理
- Detailed explanation of the binary processing function threshold() of opencv
- How test engineers "attack the city" (Part I)
- 用实际例子详细探究OpenCV的轮廓绘制函数drawContours()
- “只跑一趟”,小区装维任务主动推荐探索
- Upgrade the smart switch, how much is the difference between the "zero fire version" and "single fire" wiring methods?
猜你喜欢
随机推荐
偏移量函数及开窗函数
HDU 1372 & POJ 2243 Knight moves (breadth first search)
函数式接口
Lm10 cosine wave homeopathic grid strategy
Shell 编程核心技术《二》
node_ Exporter deployment
Master the use of auto analyze in data warehouse
PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
HDU 6440 2018 Chinese college student program design network competition
反射(一)
Add namespace declaration
To sort out messy header files, I use include what you use
The page element is vertically and horizontally centered, realizing the vertical and horizontal centering of known or unknown width.
Personal thoughts on Architecture Design (this article will be revised and updated continuously later)
Oracle with as ora-00903: invalid table name multi report error
HDU 6440 2018中国大学生程序设计网络选拔赛
Shell 编程核心技术《四》
基于NCF的多模块协同实例
牛客小白月赛7 F题
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples








