当前位置:网站首页>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;
}
边栏推荐
- BCG 使用之CBCGPTabWnd控件(相当于MFC TabControl)
- 1009 Product of Polynomials(25 分)(PAT甲级)
- Shell 编程核心技术《三》
- HDU 6440 2018 Chinese college student program design network competition
- Hough transform Hough transform principle
- Detailed explanation of the binary processing function threshold() of opencv
- 1008 Elevator(20 分)(PAT甲级)
- Guys, for help, I use MySQL CDC 2.2.1 (Flink 1.14.5) to write Kafka and set
- The 300th weekly match of leetcode (20220703)
- "Only one trip", active recommendation and exploration of community installation and maintenance tasks
猜你喜欢
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
BCG 使用之CBCGPTabWnd控件(相当于MFC TabControl)
Detailed explanation of the binary processing function threshold() of opencv
Stream stream
C# 使用StopWatch测量程序运行时间
用实际例子详细探究OpenCV的轮廓绘制函数drawContours()
HMM隐马尔可夫模型最详细讲解与代码实现
Use canal and rocketmq to listen to MySQL binlog logs
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
SSRS筛选器的IN运算(即包含于)用法
随机推荐
@transactional滥用导致数据源连接池耗尽问题
Swagger突然发癫
The 15th youth informatics competition in Shushan District in 2019
与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
Shell 编程核心技术《二》
An example of multi module collaboration based on NCF
The 300th weekly match of leetcode (20220703)
Matrix flip (array simulation)
Summary and sorting of 8 pits of redis distributed lock
English语法_名词 - 使用
Educational Codeforces Round 22 E. Army Creation
The explain statement in MySQL queries whether SQL is indexed, and several types in extra collate and summarize
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
如何使用Async-Awati异步任務處理代替BackgroundWorker?
Introduction to polyfit software
Pythagorean number law (any three numbers can meet the conditions of Pythagorean theorem)
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
关于判断点是否位于轮廓内的一点思考
BCG 使用之CBCGPProgressDlg进度条使用
Niuke Xiaobai monthly race 7 I new Microsoft Office Word document