九度论坛-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);
			}
			
		}

	}

}

你可能感兴趣的:(九度论坛-1011)