public static void main(String[] args) { try { eq( 0, (new BallsSeparating_2()) .minOperations(new int[] {1, 1, 1}, new int[] {1, 1, 1}, new int[] {1, 1, 1}), 6); eq( 1, (new BallsSeparating_2()).minOperations(new int[] {5}, new int[] {6}, new int[] {8}), -1); eq( 2, (new BallsSeparating_2()) .minOperations( new int[] {4, 6, 5, 7}, new int[] {7, 4, 6, 3}, new int[] {6, 5, 3, 8}), 37); eq( 3, (new BallsSeparating_2()) .minOperations( new int[] {7, 12, 9, 9, 7}, new int[] {7, 10, 8, 8, 9}, new int[] {8, 9, 5, 6, 13}), 77); eq( 4, (new BallsSeparating_2()) .minOperations( new int[] { 842398, 491273, 958925, 849859, 771363, 67803, 184892, 391907, 256150, 75799 }, new int[] { 268944, 342402, 894352, 228640, 903885, 908656, 414271, 292588, 852057, 889141 }, new int[] { 662939, 340220, 600081, 390298, 376707, 372199, 435097, 40266, 145590, 505103 }), 7230607); int[] a = new int[50]; int[] b = new int[50]; int[] c = new int[50]; fill(a, 1); fill(b, 1); fill(c, 1); eq(5, (new BallsSeparating_2()).minOperations(a, b, c), 7230607); } catch (Exception exx) { System.err.println(exx); exx.printStackTrace(System.err); } }