a

d
 avatar
unknown
java
a year ago
1.6 kB
7
Indexable
import java.io.FileInputStream;
import java.util.Scanner;

public class Solution {
	//040202018010
	static int n, rs, diem, end, rs1;
	static int[] arr, v, map;

	public static int calc(int vitri) {
		int left = 0;
		int right = 0;
		for (int i = vitri + 1; i < n; i++) {
			if (v[i] == 0) {
				right = arr[i];
				break;
			}
		}
		for (int i = vitri - 1; i >= 0; i--) {
			if (v[i] == 0) {
				left = arr[i];
				break;
			}
		}
		if (left != 0 && right != 0) {
			return left * right;
		} else if (left != 0) {
			return left;
		} else if (right != 0) {
			return right;
		} else {
			return arr[vitri];
		}
	}

	static void hoanvi(int len) {
		if (n == 1) {
			rs = arr[0];
			return;
		}
		if (len == n - 2) {
			int max = 0;
			for (int i = 0; i < n; i++) {
				if (v[i] == 0) {
					max = Math.max(max, arr[i]);
				}
			}
			rs = Math.max(rs, diem + max * 2);
			return;
		}
		for (int i = 0; i < n; i++) {
			if (v[i] == 0) {
				v[i] = 1;
				diem += calc(i);
				hoanvi(len + 1);
				diem -= calc(i);
				v[i] = 0;
			}
		}
	}

	public static void main(String[] args) throws Exception {
		System.setIn(new FileInputStream(
				"D:/LeCongMinh/B8/BanBongBay/input.txt"));
		Scanner sc = new Scanner(System.in);

		int T = sc.nextInt();
		for (int t = 1; t <= T; t++) {
			n = sc.nextInt();
			arr = new int[n];
			v = new int[n];
			rs = diem = 0;
			for (int i = 0; i < n; i++) {
				arr[i] = sc.nextInt();
			}
			hoanvi(0);
			System.out.println("Case #" + t);
			System.out.println(rs);
		}

		sc.close();
	}

}
Editor is loading...
Leave a Comment