|
|
back to boardWhy "Wrong Answer"? import java.util.*; public class SearchMidDifferenc { @SuppressWarnings("empty-statement") public static void main(String[] args) { int SummArray = 0; int i; int[] arr; Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); arr = new int[n]; scanner.nextLine(); for(i=0;i<n;i++){ arr[i] = scanner.nextInt(); scanner.nextLine(); } for(int k:arr){ SummArray+=k; } int MinDifferent = BalancedPatrition(arr,SummArray); }
//Search min different public static int BalancedPatrition(int[] arr,int SummArray){ boolean [] sol = new boolean [SummArray / 2 + 1];
sol [0] = true; for (int k : arr) { for (int j = SummArray / 2; j >= k; j--) { if (sol [j - k]) sol [j] = true; } }
int halfsumcloser = SummArray / 2; for (; !sol [halfsumcloser]; halfsumcloser--); int MinDifferent = (SummArray - halfsumcloser) - halfsumcloser; System.out.println (((SummArray - halfsumcloser) - halfsumcloser)); return MinDifferent; } } Edited by author 09.02.2017 14:27 Re: Why "Runtime error"? in IDE all work. Pls help guys. import java.util.*; public class SearchMidDifferenc { @SuppressWarnings("empty-statement") public static void main(String[] args) { int SummArray = 0; int i; int[] arr; Scanner scanner = new Scanner(System.in,"ISO-8859-1"); int n = scanner.nextInt(); arr = new int[n]; scanner.nextLine(); for(i=0;i<n;i++){ arr[i] = scanner.nextInt(); scanner.nextLine(); } for(int k:arr){ SummArray+=k; } int MinDifferent = BalancedPatrition(arr,SummArray); }
//Search min different public static int BalancedPatrition(int[] arr,int SummArray){ boolean [] sol = new boolean [SummArray / 2 + 1];
sol [0] = true; for (int k : arr) { for (int j = SummArray / 2; j >= k; j--) { if (sol [j - k]) sol [j] = true; } }
int halfsumcloser = SummArray / 2; for (; !sol [halfsumcloser]; halfsumcloser--); int MinDifferent = (SummArray - halfsumcloser) - halfsumcloser; System.out.println(((SummArray - halfsumcloser) - halfsumcloser)); return MinDifferent; } } Edited by author 09.02.2017 15:00 |
|
|