Pagini recente » Cod sursa (job #1684807) | Cod sursa (job #181271) | Cod sursa (job #35570) | Cod sursa (job #271887) | Cod sursa (job #2592771)
import math as mp
import numpy
cin = open("flip.in", "r")
cout = open("flip.out", "w")
def parser():
while 1:
data = list(cin.read().split())
for number in data:
if len(number) > 0:
yield(number)
input_parser = parser()
def get_word():
global input_parser
return next(input_parser)
# numpy and scipy are available for use
n = get_word()
m = get_word()
n = int(n)
m = int(m)
a = numpy.zeros((n, m))
for i in range(0, n):
for j in range(0, m):
a[i][j] = get_word()
for i in range(0, n):
for j in range(0, m):
a[i][j] = int(a[i][j])
best = int(-(10**13))
for conf in range(0, 2**m):
conf_cost = 0
for i in range(0, n):
sum1 = 0
sum2 = 0
for j in range(0, m):
if (conf >> j) & 1:
sum1 = sum1 + a[i][j]
sum2 = sum2 - a[i][j]
else:
sum1 = sum1 - a[i][j]
sum2 = sum2 + a[i][j]
conf_cost = conf_cost + max(sum1, sum2)
best = max(best, conf_cost)
best = int(best)
cout.write(str(best))