九度論壇-1011

該題使用貪心算法
/**
 * 文件名: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);
			}
			
		}

	}

}
相關文章
相關標籤/搜索