当前位置:网站首页>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;
}
边栏推荐
- 2022CoCa: Contrastive Captioners are Image-Text Fountion Models
- 爬虫(6) - 网页数据解析(2) | BeautifulSoup4在爬虫中的使用
- Nebula importer data import practice
- Use canal and rocketmq to listen to MySQL binlog logs
- Build your own website (15)
- BI技巧丨权限轴
- FTP, SFTP file transfer
- Wechat reading notes of "work, consumerism and the new poor"
- OpenCV的二值化处理函数threshold()详解
- Using FTP
猜你喜欢
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
OpenCV的二值化处理函数threshold()详解
奥迪AUDI EDI INVOIC发票报文详解
Safer, smarter and more refined, Chang'an Lumin Wanmei Hongguang Mini EV?
在线文本行固定长度填充工具
在线SQL转Excel(xls/xlsx)工具
Summary and sorting of 8 pits of redis distributed lock
使用canal配合rocketmq监听mysql的binlog日志
小发猫物联网平台搭建与应用模型
联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点
随机推荐
Send and receive IBM WebSphere MQ messages
2021 Hefei informatics competition primary school group
Wireshark网络抓包
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
升级智能开关,“零火版”、“单火”接线方式差异有多大?
Rookie post station management system based on C language
Shell programming core technology "three"
在线SQL转Excel(xls/xlsx)工具
C # implementation defines a set of SQL statements that can be executed across databases in the middle of SQL (detailed explanation of the case)
2022-07-04: what is the output of the following go language code? A:true; B:false; C: Compilation error. package main import 'fmt' func
MySQL数据库基本操作-DDL | 黑马程序员
Introduction to polyfit software
神经网络物联网是什么意思通俗的解释
Shell 编程核心技术《四》
Summary and sorting of 8 pits of redis distributed lock
Opencv functions and methods related to binary threshold processing are summarized for comparison and use
DeFi生态NFT流动性挖矿系统开发搭建
添加命名空间声明
测试工程师如何“攻城”(下)
SSL证书续费相关问题详解