該題使用貪心算法
/**
* 文件名:Main.java
*
* 版本信息:
* 日期:2013-6-30
* Copyright Corporation 2013
* 版權全部
*
*/
package 題目1011;
import java.util.Scanner;
/**
*
* 項目名稱:arithmetic
* 類名稱:Main
* 類描述:
* 建立人:黃傳聰
* 建立時間:2013-6-30 上午11:13:41
* 修改人:黃傳聰
* 修改時間:2013-6-30 上午11:13:41
* 修改備註:
* @version
*
*/
public class Main {
/**
* 方法名稱:main()
* 方法描述:
* @param
* @return String
* @Exception
*/
public static void main(String[] args) {
/**輸入k個整數*/
int k;
/**獲取輸入的值*/
int a;
int max; //最大值
int sum; //序列的總和
int begin;//序列的開始
int end;//序列的結束
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int tb,te;
k = scanner.nextInt();
if(k == 0){
break;
}
a = scanner.nextInt();
end = begin = sum = max = tb = te = a;
int i;
for(i=1;i<k;i++){
a = scanner.nextInt();
if(sum > 0){
sum += a;
te = a;
}else{
sum = a;
tb = te = a;
}
if(max<sum){
max = sum;
begin = tb;
end = te;
}
}
if(max == 0){
System.out.println(0 + " " + 0 + " " + 0);
}else if(max<0){
System.out.println(0 + " " + begin + a);
}else{
System.out.println(max + " " + begin + " " + end);
}
}
}
}