blob: b62e58d93077a86feb3999c1a7d84ec30434d0ea (
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
|
#!/usr/bin/env python3
import sys
import itertools
def flipCombination(A):
minSum = nSum = sum(A)
minCombination = ()
for k in range(1, len(A)):
for c in itertools.combinations(A, k):
s = nSum - 2 * sum(c)
if 0 <= s < minSum:
minCombination = c
minSum = s
yield minSum, minCombination
def flipElems(A):
minSum = 0
minCombination = ()
for minSum, minCombination in flipCombination(A):
if minSum == 0:
break
print(f'>> {minSum} = sum({A}) - 2 * sum({minCombination})')
return len(minCombination)
# print(flipElems([2,13,10,8])) # 2
# print(flipElems([10,12,2])) # 1
print(flipElems(list(map(int, sys.argv[1:]))))
|