2017實習生在線編程——奇虎360(分金子)

題目鏈接分金子

import java.io.BufferedInputStream;
import java.util.Scanner;

/**
 * Created by h on 17-3-19.
 */
public class Main1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(new BufferedInputStream(System.in));
        int n = in.nextInt();
        int[] arr = new int[500];

        int[][] f = new int[500][500];
        int[][] s = new int[500][500];

        for (int i = 0; i < n; i++) {
            int t = in.nextInt();
            for (int j = 0; j < t; j++) {
                arr[j] = in.nextInt();
            }
            for (int j = 0; j < arr.length; j++) {
                f[j][j] = arr[j];
                for (int k = j - 1; k >= 0; k--) {
                    f[k][j] = Math.max(arr[k] + s[k + 1][j], arr[j] + s[k][j - 1]);
                    s[k][j] = Math.min(f[k + 1][j], f[k][j - 1]);
                }
            }
            int max = Math.max(f[0][arr.length - 1], s[0][arr.length - 1]);
            int min = Math.min(f[0][arr.length - 1], s[0][arr.length - 1]);
            System.out.println("Case #" + (i + 1) + ": " + max + " " + min);
        }

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章