1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#!/opt/local/bin/python
#
# See ../README.md
#
#
# Run as: python ch-2.py < input-file
#
def init ():
global best_diff
best_diff = -1
def check_sets (set1, set2):
global best_diff
global best_set1
global best_set2
diff = abs (sum (set1) - sum (set2))
if best_diff < 0 or diff < best_diff:
best_diff = diff
best_set1 = set1
best_set2 = set2
def report ():
global best_set1
global best_set2
print (" " . join (map (lambda x: str (x), best_set1)) + "; " +
" " . join (map (lambda x: str (x), best_set2)))
def split_set (set, set1, set2):
n = len (set) + len (set1) + len (set2)
if len (set1) == n // 2:
check_sets (set1, set2 + set)
elif len (set2) == (n + 1) // 2:
check_sets (set1 + set, set2)
else:
split_set (set [1:], set1 + [set [0]], set2)
split_set (set [1:], set1, set2 + [set [0]])
import fileinput
for line in fileinput . input ():
init ()
set = list (map (lambda x: int (x), line . strip () . split ()))
split_set (set, [], [])
report ()
|