当前位置:网站首页>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;
}
边栏推荐
- Hough Transform 霍夫变换原理
- prometheus安装
- 1002. A+B for Polynomials (25)(PAT甲级)
- 2021 Hefei informatics competition primary school group
- Jetpack compose tutorial
- 1002. A+b for Polynomials (25) (PAT class a)
- 测试工程师如何“攻城”(下)
- Educational Codeforces Round 22 E. Army Creation
- The CDC of sqlserver can read the data for the first time, but it can't read the data after adding, deleting and modifying. What's the reason
- Online data migration scheme encountered in the project 1 - general idea sorting and technical sorting
猜你喜欢

Stream stream

Hough Transform 霍夫变换原理
Some thoughts on whether the judgment point is located in the contour

用实际例子详细探究OpenCV的轮廓绘制函数drawContours()

升级智能开关,“零火版”、“单火”接线方式差异有多大?

BCG 使用之CBCGPProgressDlg进度条使用

如何使用Async-Awati异步任务处理代替BackgroundWorker?

YOLOv5s-ShuffleNetV2

Lenovo explains in detail the green smart city digital twin platform for the first time to solve the difficulties of urban dual carbon upgrading

Wireshark网络抓包
随机推荐
联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点
求2的n次方
92. (cesium chapter) cesium building layering
Add namespace declaration
C# 使用StopWatch测量程序运行时间
Socket programming demo II
1007 Maximum Subsequence Sum(25 分)(PAT甲级)
BCG 使用之CBCGPProgressDlg进度条使用
HMM隐马尔可夫模型最详细讲解与代码实现
The page element is vertically and horizontally centered, realizing the vertical and horizontal centering of known or unknown width.
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
Opencv functions and methods related to binary threshold processing are summarized for comparison and use
大div中有多个div,这些div在同一行显示,溢出后产生滚动条而不换行
BCG 使用之新建向导效果
Some thoughts on whether the judgment point is located in the contour
Safer, smarter and more refined, Chang'an Lumin Wanmei Hongguang Mini EV?
1005 Spell It Right(20 分)(PAT甲级)
Online data migration scheme encountered in the project 1 - general idea sorting and technical sorting
How test engineers "attack the city" (Part 2)
2014 Hefei 31st youth informatics Olympic Games (primary school group) test questions