当前位置:网站首页>1007 Maximum Subsequence Sum(25 分)(PAT甲级)
1007 Maximum Subsequence Sum(25 分)(PAT甲级)
2022-07-04 17:58:00 【相思明月楼】
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;
}
边栏推荐
- FPGA时序约束分享01_四大步骤简述
- DeFi生态NFT流动性挖矿系统开发搭建
- MySQL数据库基本操作-DDL | 黑马程序员
- Unity adds a function case similar to editor extension to its script, the use of ContextMenu
- Qt实现界面滑动切换效果
- 2014合肥市第三十一届青少年信息学奥林匹克竞赛(小学组)试题
- Shell programming core technology "three"
- 升级智能开关,“零火版”、“单火”接线方式差异有多大?
- The 15th youth informatics competition in Shushan District in 2019
- 《工作、消费主义和新穷人》的微信读书笔记
猜你喜欢

与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用

建立自己的网站(15)

Bi skills - permission axis
![[uniapp] uniapp development app online Preview PDF file](/img/11/d640338c626249057f7ad616b55c4f.png)
[uniapp] uniapp development app online Preview PDF file

LM10丨余弦波动顺势网格策略

整理混乱的头文件,我用include what you use

物联网应用技术的就业前景和现状

每日一题(2022-07-02)——最低加油次数

To sort out messy header files, I use include what you use

Nebula importer data import practice
随机推荐
prometheus安装
Go微服务(二)——Protobuf详细入门
2022健康展,北京健博会,中国健康展,大健康展11月13日
Comment utiliser async awati asynchrone Task Handling au lieu de backgroundworker?
Opencv functions and methods related to binary threshold processing are summarized for comparison and use
如何使用Async-Awati异步任务处理代替BackgroundWorker?
redis分布式锁的8大坑总结梳理
876. 链表的中间结点
In flinksql, in addition to data statistics, is the saved data itself a state
Other InterSystems%net tools
Is Guoyuan futures a regular platform? Is it safe to open an account in Guoyuan futures?
【uniapp】uniapp开发app在线预览pdf文件
爬虫(6) - 网页数据解析(2) | BeautifulSoup4在爬虫中的使用
Shell 编程核心技术《一》
How test engineers "attack the city" (Part I)
How to use async Awati asynchronous task processing instead of backgroundworker?
Wireshark网络抓包
Cache é JSON uses JSON adapters
FPGA时序约束分享01_四大步骤简述
Leetcode ransom letter C # answer