public class ScratchPad { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub q11(); } static int[] input = {11,9,9,12,12,12,12,9,9,11}; static int[] M = new int[input.length+1]; static int r = 1; static int c=10; public static void q11() { for (int i = 1; i < M.length; i++) { int s_i = input[i-1]; int A = r * s_i + M[i-1]; int B = 4*c + M[limit(i-4)]; if (A < B) M[i] = A; else M[i] = B; } PrintSolution (M.length-1); } private static void PrintSolution (int i) { if (i < 1) return; int s_i = input[i-1]; int A = r * s_i + M[i-1]; int B = 4*c + M[limit(i-4)]; if (A < B) { System.out.print("A"); PrintSolution(i-1); } else { System.out.print("BBBB"); PrintSolution(i-4); } } private static int limit(int i) { if (i < 0) return 0; return i; } }