File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed
Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+
7+ public static void main (String [] args ) throws Exception {
8+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
9+ StringTokenizer st;
10+
11+ int n = Integer . parseInt(br. readLine());
12+ int [] arr = new int [n];
13+ int weight_sum = 0 ;
14+
15+ for (int i = 0 ; i < n; i++ ) {
16+ arr[i] = Integer . parseInt(br. readLine());
17+ weight_sum += arr[i];
18+ }
19+
20+ int member = n / 2 ;
21+
22+ boolean [][] weight = new boolean [member + 1 ][weight_sum + 1 ];
23+
24+ weight[0 ][0 ] = true ;
25+
26+ for (int w : arr) {
27+ for (int i = member; i >= 1 ; i-- ) {
28+ for (int ws = weight_sum; ws >= 0 ; ws-- ) {
29+ if (weight[i - 1 ][ws])
30+ weight[i][ws + w] = true ;
31+ }
32+ }
33+ }
34+
35+ int big = 0 , small = 0 ;
36+ int difference = 987654321 ;
37+
38+ for (int i = 0 ; i <= weight_sum; i++ ) {
39+ if (weight[member][i]) {
40+ int difftemp = Math . abs(weight_sum - (i * 2 ));
41+ if (difftemp < difference) {
42+ difference = difftemp;
43+ big = Math . max(weight_sum - i, i);
44+ small = Math . min(weight_sum - i, i);
45+ }
46+ }
47+ }
48+
49+ System . out. println(small + " " + big);
50+
51+ }
52+ }
53+
54+ ```
You can’t perform that action at this time.
0 commit comments