当前位置:网站首页>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;
}
边栏推荐
- Pythagorean number law (any three numbers can meet the conditions of Pythagorean theorem)
- Oracle with as ORA-00903: invalid table name 多表报错
- The 300th weekly match of leetcode (20220703)
- HDU 1097 A hard puzzle
- Online sql to excel (xls/xlsx) tool
- Generate XML elements
- Leetcode fizzbuzz C # answer
- 项目中遇到的线上数据迁移方案1---总体思路整理和技术梳理
- Swagger突然发癫
- .NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查)
猜你喜欢
Summary and sorting of 8 pits of redis distributed lock
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
The 300th weekly match of leetcode (20220703)
PolyFit软件介绍
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
BCG 使用之CBCGPTabWnd控件(相当于MFC TabControl)
PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
如何使用Async-Awati异步任務處理代替BackgroundWorker?
Upgrade the smart switch, how much is the difference between the "zero fire version" and "single fire" wiring methods?
C# 使用StopWatch测量程序运行时间
随机推荐
876. Intermediate node of linked list
1009 Product of Polynomials(25 分)(PAT甲级)
Bi skills - permission axis
牛客小白月赛7 E Applese的超能力
Matrix flip (array simulation)
Several methods of online database migration
26. Delete the duplicate item C solution in the ordered array
Master the use of auto analyze in data warehouse
Pytorch学习(四)
The 300th weekly match of leetcode (20220703)
《工作、消费主义和新穷人》的微信读书笔记
BCG 使用之CBCGPProgressDlgCtrl进度条使用
Opencv functions and methods related to binary threshold processing are summarized for comparison and use
Unity adds a function case similar to editor extension to its script, the use of ContextMenu
. Net ORM framework hisql practice - Chapter 2 - using hisql to realize menu management (add, delete, modify and check)
Upgrade the smart switch, how much is the difference between the "zero fire version" and "single fire" wiring methods?
1002. A+b for Polynomials (25) (PAT class a)
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
HDU 1097 A hard puzzle
Guys, for help, I use MySQL CDC 2.2.1 (Flink 1.14.5) to write Kafka and set