aboutsummaryrefslogtreecommitdiff
path: root/challenge-124/abigail/python/ch-2.py
blob: 613634f80b6dfd71406a52fca2015b24122bcb69 (plain)
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 ()