blob: 1a3a3bffc20ed151c8b4c8c94bfc250430e92b4d (
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
|
#!/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 = sum(A)
minCombination = ()
for s, c in flipCombination(A):
if s < minSum:
minSum = s
minCombination = c
if s == 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:]))))
|