// 01-复杂度2 Maximum Subsequence Sum
import java.util.Scanner;
public class Main{
static int start, end;
static int MaxSum(int N, int[] a) {
int maxsum = 0;
int thissum = 0;
for(int i = 0; i < N; i ++) {
thissum += a[i];
if(thissum > maxsum) {
maxsum = thissum;
end = a[i];
int sum = 0;
for(int j = i; j >= 0; j --) {
sum += a[j];
if(sum == maxsum) {
start = a[j];
}
}
}
else if(thissum <= 0) {
thissum = 0;
}
}
if(maxsum == 0) {
start = 0;
end = 0;
}
return maxsum;
}
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = 0;
n = s.nextInt();
int[] a = new int[n];
for(int i = 0; i < n; i ++) {
a[i] = s.nextInt();
}
boolean flag = true;
for(int i = 0; i < n; i ++) {
if(a[i] >= 0) {
flag = false;
}
}
int maxsum = MaxSum(n, a);
if(flag == false) {
System.out.print(maxsum + " " + start + " " + end);
}
else {
System.out.print(0 + " " + a[0] + " " + a[n-1]);
}
}
}
01-复杂度2 Maximum Subsequence Sum
最新推荐文章于 2025-04-30 11:28:26 发布