Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //package equalizeStones;
- import java.util.*;
- public class Stones {
- public static void main(String[] args) {
- // String input = "5 67 54 16 55 40";
- //String input = "3 1 49 50";
- //String input = "6 19 18 10 19 4 12";
- // String input = "3 100 25 25";
- // String input = "4 100 25 25 25";
- //String input = "5 100 25 25 25 25";
- // String input = "6 100 25 25 25 25 25";
- String input = "4 5 14 16 25";
- // String input = "2 100 150";
- // String input = "2 100 100";
- // String input = "1 100";
- //String input = "11 200 1 5 300 70 1 199 299 50 600 75";
- Scanner sc = new Scanner(input);
- int size = sc.nextInt();
- int[] weights = new int[size];
- for (int i = 0; i < weights.length; i++) {
- weights[i] = sc.nextInt();
- }
- sc.close();
- System.out.println(getMinimalBalance(weights));
- }
- public static int getMinimalBalance (int[] weights){
- int halfWeight = getSum (weights) / 2;
- int [][] sums = new int [weights.length - 1][];
- sums[0] = weights;
- for (int i = 1; i < sums.length; i++){
- sums[i] = new int[sums[i-1].length - 1];
- for (int j = 0; j < sums[i].length; j++){
- System.out.printf("sums[%d][%<d]: %d, sums[%1$d][%d]: %d\n", i-1, sums[0][i-1], j+1, sums[i - 1][j+1]);
- // if (sums[i-1][i-1] + sums[i - 1][j + 1] <= halfWeight){
- sums[i][j] = sums[i - 1][i-1] + sums[i - 1][j + 1];
- // }
- }
- }
- printAll(sums);
- return getNearest(sums, halfWeight);
- }
- private static int getNearest (int[][] nums, int number){
- int max = 0;
- for (int [] s : nums){
- Arrays.sort(s);
- for (int i = s.length - 1; s[i] >= number; i--){
- if (s[i] > max){
- max = s[i];
- }
- }
- }
- return max;
- }
- private static int getSum(int[] nums) {
- int res = 0;
- for (int i = nums.length - 1; i >= 0; i--) {
- res += nums[i];
- }
- System.out.println("sum: " + res);
- return res;
- }
- private static void printAll (int [][] ar){
- for (int [] subAr : ar){
- System.out.println(Arrays.toString(subAr));
- }
- }
- }
Add Comment
Please, Sign In to add comment