import java.util.Scanner;
public class Main{
public static void main(String[] args){
int _case,n,i;
int []a=new int [100100];
int []b=new int [100100];
int []c=new int [100100];
Scanner in=new Scanner(System.in);
_case=in.nextInt();
int js=0;
while(_case-->0){
js++;
n=in.nextInt();
for(i=0;i<n;i++){
a[i]=in.nextInt();
}
b[0]=a[0];
c[0]=0;
for(i=1;i<n;i++){
if(b[i-1]+a[i]<a[i]){
b[i]=a[i];
c[i]=i;
}
else{
b[i]=b[i-1]+a[i];
c[i]=c[i-1];
}
}
int ed=0;
int max=b[0];
for(i=1;i<n;i++){
if(max<b[i]){
max=b[i];
ed=i;
}
}
System.out.println("Case "+js+":");
System.out.println(max+" "+(c[ed]+1)+" "+(ed+1));
if(_case>0)
System.out.println();
}
}
}
HDU 1003 Max Sum Java
最新推荐文章于 2020-02-24 00:48:15 发布
本文介绍了一个使用Java实现的最大子段和算法示例代码。该算法通过动态规划的方法求解给定整数数组中最大连续子数组的和及其起始和结束位置。通过输入一组整数,程序能够输出具有最大和的子数组及其范围。
295

被折叠的 条评论
为什么被折叠?



