解法一:贪心
注意考虑全是负数和0的特殊情况。
import java.io.*;public class Main {public static void main(String[] args) throws IOException {StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));in.nextToken();int N = (int) in.nval;int[] nums = new int[N];int max = -1, sum = 0;int first = 0, last = N - 1, temp = 0;for (int i = 0; i < N; ++i) {in.nextToken();nums[i] = (int) in.nval;sum += nums[i];if (sum < 0) {sum = 0;temp = i + 1;} else if (sum > max) {max = sum;first = temp;last = i;}}if (max < 0) {max = 0;}out.println(max + " " + nums[first] + " " + nums[last]);out.flush();}}
