a
dunknown
java
a year ago
1.6 kB
11
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