a
dunknown
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