当前位置:网站首页>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;
}
边栏推荐
- SSRS筛选器的IN运算(即包含于)用法
- Have you guys ever used CDC direct Mysql to Clickhouse
- 2014合肥市第三十一届青少年信息学奥林匹克竞赛(小学组)试题
- Is it safe to open an account at Great Wall Securities? How to open an account when buying stocks
- Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
- 如何使用Async-Awati异步任务处理代替BackgroundWorker?
- Use canal and rocketmq to listen to MySQL binlog logs
- 牛客小白月赛7 E Applese的超能力
- 偏移量函数及开窗函数
- Shell 编程核心技术《四》
猜你喜欢
Wireshark网络抓包
Online sql to excel (xls/xlsx) tool
如何使用Async-Awati异步任務處理代替BackgroundWorker?
BI技巧丨权限轴
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
“只跑一趟”,小区装维任务主动推荐探索
MySQL数据库基本操作-DDL | 黑马程序员
Pytorch学习(四)
BCG 使用之新建向导效果
Several methods of online database migration
随机推荐
HDU 6440 2018 Chinese college student program design network competition
1011 World Cup Betting (20 分)(PAT甲级)
Technologie de base de la programmation Shell IV
测试工程师如何“攻城”(下)
求2的n次方
Leetcode ransom letter C # answer
项目中遇到的线上数据迁移方案1---总体思路整理和技术梳理
2021 Hefei informatics competition primary school group
Pointnet/Pointnet++点云数据集处理并训练
Unity adds a function case similar to editor extension to its script, the use of ContextMenu
Detailed explanation of issues related to SSL certificate renewal
反射(一)
BCG 使用之CBCGPProgressDlgCtrl進度條使用
Shell 编程核心技术《一》
HDU 1097 A hard puzzle
Online sql to excel (xls/xlsx) tool
函数式接口
牛客小白月赛7 谁是神箭手
2019年蜀山区第十五届青少年信息学竞赛
QT realizes interface sliding switching effect