You are given a matrix, consisting of three rows and three columns, represented as an array A of nine integers. The rows of the matrix are numbered from 0 to 2 (from top to bottom) and the columns are numbered from 0 to 2 (from left to right). The matrix element in the J-th row and K-th column corresponds to the array element A[J*3 + K]. For example, the matrix below corresponds to array [0, 2, 3, 4, 1, 1, 1, 3, 1].
In one move you can increment any element by 1.
Your task is to find a matrix whose elements in each row and each column sum to an equal value, which can be constructed from the given matrix in a minimal number of moves.
Write a function:
def solution(A)
that, given an array A of nine integers, returns an array of nine integers, representing the matrix described above. If there are several possible answers, the function may return any of them.
Examples:
1. Given A = [0, 2, 3, 4, 1, 1, 1, 3, 1], the function could return [1, 2, 3, 4, 1, 1, 1, 3, 2]. The sum of elements in each row and each column of the returned matrix is 6. Two increments by 1 are enough. You can increment A[0] and A[8] (top-left and bottom-right matrix elements). This gives [1, 2, 3, 4, 1, 1, 1, 3, 2], which satisfies the statement's conditions. Alternatively, you can increment A[2] and A[6] (top-right and bottom-left matrix elements). This gives another correct solution: [0, 2, 4, 4, 1, 1, 2, 3, 1].
2. Given A = [1, 1, 1, 2, 2, 1, 2, 2, 1], the function should return [1, 1, 3, 2, 2, 1, 2, 2, 1]. The sum of elements in each row and each column of the returned matrix is 5. Two increments by 1 are enough. You can increment A[2] (top-right matrix element) twice. In this case, there are no other correct solutions.
Write an efficient algorithm for the following assumptions:
- array A contains nine elements;
- each element of array A is an integer within the range [0..100,000,000].
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[0] + A[3] + A[6],
A[0] + A[3] + A[6],
]
)
pass
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]]
)
pass
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
pass
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
pass
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
pass
Invalid result type, array expected, <class 'NoneType'> found.stdout:
6
Invalid result type, array expected, <class 'NoneType'> found.stdout:
5
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
re
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print(s)
return A;
6
5
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
return A;
maximal sum 6
maximal sum 5
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
r
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
r
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[1] + A[2])
row_sums.append(A[6] + A[1] + A[2])
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append()
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max([A[0] + A[1] + A[2],
A[3] + A[4] + A[5],
A[6] + A[7] + A[8],
A[0] + A[3] + A[6],
A[1] + A[4] + A[7],
A[2] + A[5] + A[8]])
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(row_sums)
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i range(3):
if (row_sums[i] == a)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i range(3):
if (row_sums[i] != s):
rows.
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i range(3):
if (row_sums[i] != s):
rows.add(i)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
rows.add(i)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = {}
cols = {}
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 28, in solution rows.add(i) AttributeError: 'dict' object has no attribute 'add'stdout:
maximal sum 6
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 28, in solution rows.add(i) AttributeError: 'dict' object has no attribute 'add'stdout:
maximal sum 5
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = s
cols = {}
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
maximal sum 6 {0, 2} {0, 2}
maximal sum 5 {0} {2}
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
a
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = row_sums
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = row_sums[r_id]
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - (max(row_sums[r_id], co
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - (max(row_sums[r_id], col_sums[c_id]))
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - (max(row_sums[r_id], col_sums[c_id]))
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[r_id], col_sums[c_id])
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[]
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
i
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
print(rows)
print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
maximal sum 6 {0, 2} {0, 2}
maximal sum 5 {0} {2}
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
[1, 2, 3, 4, 1, 1, 1, 3, 2]
[1, 1, 3, 2, 2, 1, 2, 2, 1]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
if __name__ == "__main__":
print("main")
[1, 2, 3, 4, 1, 1, 1, 3, 2]
[1, 1, 3, 2, 2, 1, 2, 2, 1]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solve_core(A)
def solution(A):
# write your code in Python 3.6
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
for i in range(100):
n = rand()
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import rand
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
for i in range(100):
n = rand()
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
for i in range(100):
n = rand()
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
for i in range(100):
n = randint(1, 9)
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = []
for i in range(100):
a.
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
a[i]
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
a[i]
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
reevaluate(A)
def solution(A):
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
if __name__ == "__main__":
print("main")
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s =
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
if (A[3*i] + A[3*i + 1] + A[3*i + 2])
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
#rows
if (A[1] + A[3*i + 1] + A[3*i + 2] != s)
return False
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
#rows
if (A[] + A[3*i + 1] + A[3*i + 2] != s)
return False
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
#rows
if (A[i] + A[3*i + 1] + A[3*i + 2] != s)
return False
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s)
return False
#rows
if (A[i] + A[i + 3] + A[i + 6] != s)
return False
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s)
return False
return True
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s)
return False
return True
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s)
return False
return True
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
res = evaluate(A)
assert(res)
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(100):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.push_back(randint(0,100000000))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.push_back(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.push_back(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 82, in solution exp() File "/tmp/solution.py", line 75, in exp A.push_back(randint(0, 100)) AttributeError: 'list' object has no attribute 'push_back'
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 82, in solution exp() File "/tmp/solution.py", line 75, in exp A.push_back(randint(0, 100)) AttributeError: 'list' object has no attribute 'push_back'
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[81, 119, 3, 94, 35, 74, 28, 49, 126] [13, 86, 94, 107, 11, 75, 73, 96, 24] [52, 42, 93, 64, 120, 3, 71, 25, 91] [83, 89, 69, 83, 28, 130, 75, 124, 42] [112, 20, 89, 54, 132, 35, 55, 69, 97] [62, 16, 76, 48, 61, 45, 44, 77, 33] [27, 93, 58, 80, 15, 83, 71, 70, 37] [95, 79, 46, 73, 57, 90, 52, 84, 84] [29, 98, 37, 87, 29, 48, 48, 37, 79] [81, 112, 20, 47, 62, 104, 85, 39, 89] [1, 2, 3, 4, 1, 1, 1, 3, 2]
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[81, 119, 3, 94, 35, 74, 28, 49, 126] [13, 86, 94, 107, 11, 75, 73, 96, 24] [52, 42, 93, 64, 120, 3, 71, 25, 91] [83, 89, 69, 83, 28, 130, 75, 124, 42] [112, 20, 89, 54, 132, 35, 55, 69, 97] [62, 16, 76, 48, 61, 45, 44, 77, 33] [27, 93, 58, 80, 15, 83, 71, 70, 37] [95, 79, 46, 73, 57, 90, 52, 84, 84] [29, 98, 37, 87, 29, 48, 48, 37, 79] [81, 112, 20, 47, 62, 104, 85, 39, 89] [1, 1, 3, 2, 2, 1, 2, 2, 1]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[81, 119, 3, 94, 35, 74, 28, 49, 126] [13, 86, 94, 107, 11, 75, 73, 96, 24] [52, 42, 93, 64, 120, 3, 71, 25, 91] [83, 89, 69, 83, 28, 130, 75, 124, 42] [112, 20, 89, 54, 132, 35, 55, 69, 97] [62, 16, 76, 48, 61, 45, 44, 77, 33] [27, 93, 58, 80, 15, 83, 71, 70, 37] [95, 79, 46, 73, 57, 90, 52, 84, 84] [29, 98, 37, 87, 29, 48, 48, 37, 79] [81, 112, 20, 47, 62, 104, 85, 39, 89] ALL GOOD [1, 2, 3, 4, 1, 1, 1, 3, 2]
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[81, 119, 3, 94, 35, 74, 28, 49, 126] [13, 86, 94, 107, 11, 75, 73, 96, 24] [52, 42, 93, 64, 120, 3, 71, 25, 91] [83, 89, 69, 83, 28, 130, 75, 124, 42] [112, 20, 89, 54, 132, 35, 55, 69, 97] [62, 16, 76, 48, 61, 45, 44, 77, 33] [27, 93, 58, 80, 15, 83, 71, 70, 37] [95, 79, 46, 73, 57, 90, 52, 84, 84] [29, 98, 37, 87, 29, 48, 48, 37, 79] [81, 112, 20, 47, 62, 104, 85, 39, 89] ALL GOOD [1, 1, 3, 2, 2, 1, 2, 2, 1]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 100000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[85822412, 126131175, 3356886, 99529223, 36913810, 78867440, 29958838, 52265488, 133086147] [13756669, 90825067, 99410741, 113069182, 11668732, 79254563, 77166626, 101498678, 25327173] [54962424, 44701698, 98454977, 67827638, 126729864, 3561597, 75329037, 26687537, 96102525] [87226012, 94130244, 73140807, 88181150, 29587039, 136728874, 79089901, 130779780, 44627382] [25749871, 93702683, 56722344, 45667651, 37295260, 93211987, 104757376, 45176955, 26240567] [108269945, 70703733, 12981052, 48181396, 62742598, 81030736, 35503389, 58508399, 97942942] [116584896, 71971316, 18184430, 50806024, 50394721, 105539897, 39349722, 84374605, 83016315] [48537831, 157510754, 25808537, 94566031, 9335534, 127955557, 88753260, 65010834, 78093028] [19778331, 62908432, 73431367, 51019678, 44242752, 60855700, 85320121, 48966946, 21831063] [49684848, 108567458, 73126145, 89949389, 35833156, 105595906, 91744214, 86977837, 52656400] ALL GOOD [1, 2, 3, 4, 1, 1, 1, 3, 2]
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[85822412, 126131175, 3356886, 99529223, 36913810, 78867440, 29958838, 52265488, 133086147] [13756669, 90825067, 99410741, 113069182, 11668732, 79254563, 77166626, 101498678, 25327173] [54962424, 44701698, 98454977, 67827638, 126729864, 3561597, 75329037, 26687537, 96102525] [87226012, 94130244, 73140807, 88181150, 29587039, 136728874, 79089901, 130779780, 44627382] [25749871, 93702683, 56722344, 45667651, 37295260, 93211987, 104757376, 45176955, 26240567] [108269945, 70703733, 12981052, 48181396, 62742598, 81030736, 35503389, 58508399, 97942942] [116584896, 71971316, 18184430, 50806024, 50394721, 105539897, 39349722, 84374605, 83016315] [48537831, 157510754, 25808537, 94566031, 9335534, 127955557, 88753260, 65010834, 78093028] [19778331, 62908432, 73431367, 51019678, 44242752, 60855700, 85320121, 48966946, 21831063] [49684848, 108567458, 73126145, 89949389, 35833156, 105595906, 91744214, 86977837, 52656400] ALL GOOD [1, 1, 3, 2, 2, 1, 2, 2, 1]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(10):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 962, 25, 759, 281, 601, 228, 398, 1015] [165, 692, 825, 913, 558, 211, 604, 432, 646] [1053, 95, 223, 238, 517, 616, 80, 759, 532] [733, 665, 718, 924, 429, 763, 459, 1022, 635] [828, 1062, 429, 777, 825, 717, 714, 432, 1173] [1021, 159, 925, 980, 781, 344, 104, 1165, 836] [650, 367, 867, 352, 1262, 270, 882, 255, 747] [1251, 549, 527, 996, 944, 387, 80, 834, 1413] [849, 864, 633, 906, 882, 558, 591, 600, 1155] [989, 46, 677, 233, 791, 688, 490, 875, 347] [887, 749, 389, 284, 464, 1277, 854, 812, 359] [676, 705, 940, 686, 917, 718, 959, 699, 663] [596, 623, 650, 175, 948, 746, 1098, 298, 473] [706, 276, 947, 655, 704, 570, 568, 949, 412] [863, 786, 794, 1368, 234, 841, 212, 1423, 808] [1416, 284, 512, 216, 1031, 965, 580, 897, 735] [616, 758, 689, 511, 647, 905, 936, 658, 469] [785, 553, 250, 252, 762, 574, 551, 273, 764] [598, 438, 919, 1133, 408, 414, 224, 1109, 622] [750, 93, 773, 55, 881, 680, 811, 642, 163] [811, 696, 432, 738, 173, 1028, 390, 1070, 479] [1446, 257, 994, 566, 1166, 965, 685, 1274, 738] [518, 698, 906, 549, 768, 805, 1055, 656, 411] [1474, 300, 837, 161, 1572, 878, 976, 739, 896] [736, 269, 995, 745, 780, 475, 519, 951, 530] [891, 1179, 305, 861, 654, 860, 623, 542, 1210] [931, 806, 690, 552, 1078, 797, 944, 543, 940] [770, 613, 838, 500, 1237, 484, 951, 371, 899] [1304, 826, 318, 245, 1042, 1161, 899, 580, 969] [832, 87, 1188, 497, 1475, 135, 778, 545, 784] [1211, 131, 675, 486, 969, 562, 320, 917, 780] [893, 1106, 433, 987, 216, 1229, 552, 1110, 770] [881, 254, 730, 319, 859, 687, 665, 752, 448] [921, 529, 462, 926, 253, 733, 65, 1130, 717] [714, 567, 235, 656, 225, 635, 146, 724, 646] [574, 832, 433, 927, 32, 880, 338, 975, 526] [1224, 285, 685, 497, 1145, 552, 473, 764, 957] [903, 584, 590, 690, 316, 1071, 484, 1177, 416] [370, 470, 637, 674, 441, 362, 433, 566, 478] [1218, 746, 55, 689, 669, 661, 112, 604, 1303] [745, 347, 819, 970, 398, 543, 196, 1166, 549] [1520, 143, 432, 320, 1057, 718, 255, 895, 945] [1041, 453, 827, 882, 876, 563, 398, 992, 931] [553, 1352, 411, 992, 95, 1229
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 962, 25, 759, 281, 601, 228, 398, 1015] [165, 692, 825, 913, 558, 211, 604, 432, 646] [1053, 95, 223, 238, 517, 616, 80, 759, 532] [733, 665, 718, 924, 429, 763, 459, 1022, 635] [828, 1062, 429, 777, 825, 717, 714, 432, 1173] [1021, 159, 925, 980, 781, 344, 104, 1165, 836] [650, 367, 867, 352, 1262, 270, 882, 255, 747] [1251, 549, 527, 996, 944, 387, 80, 834, 1413] [849, 864, 633, 906, 882, 558, 591, 600, 1155] [989, 46, 677, 233, 791, 688, 490, 875, 347] [887, 749, 389, 284, 464, 1277, 854, 812, 359] [676, 705, 940, 686, 917, 718, 959, 699, 663] [596, 623, 650, 175, 948, 746, 1098, 298, 473] [706, 276, 947, 655, 704, 570, 568, 949, 412] [863, 786, 794, 1368, 234, 841, 212, 1423, 808] [1416, 284, 512, 216, 1031, 965, 580, 897, 735] [616, 758, 689, 511, 647, 905, 936, 658, 469] [785, 553, 250, 252, 762, 574, 551, 273, 764] [598, 438, 919, 1133, 408, 414, 224, 1109, 622] [750, 93, 773, 55, 881, 680, 811, 642, 163] [811, 696, 432, 738, 173, 1028, 390, 1070, 479] [1446, 257, 994, 566, 1166, 965, 685, 1274, 738] [518, 698, 906, 549, 768, 805, 1055, 656, 411] [1474, 300, 837, 161, 1572, 878, 976, 739, 896] [736, 269, 995, 745, 780, 475, 519, 951, 530] [891, 1179, 305, 861, 654, 860, 623, 542, 1210] [931, 806, 690, 552, 1078, 797, 944, 543, 940] [770, 613, 838, 500, 1237, 484, 951, 371, 899] [1304, 826, 318, 245, 1042, 1161, 899, 580, 969] [832, 87, 1188, 497, 1475, 135, 778, 545, 784] [1211, 131, 675, 486, 969, 562, 320, 917, 780] [893, 1106, 433, 987, 216, 1229, 552, 1110, 770] [881, 254, 730, 319, 859, 687, 665, 752, 448] [921, 529, 462, 926, 253, 733, 65, 1130, 717] [714, 567, 235, 656, 225, 635, 146, 724, 646] [574, 832, 433, 927, 32, 880, 338, 975, 526] [1224, 285, 685, 497, 1145, 552, 473, 764, 957] [903, 584, 590, 690, 316, 1071, 484, 1177, 416] [370, 470, 637, 674, 441, 362, 433, 566, 478] [1218, 746, 55, 689, 669, 661, 112, 604, 1303] [745, 347, 819, 970, 398, 543, 196, 1166, 549] [1520, 143, 432, 320, 1057, 718, 255, 895, 945] [1041, 453, 827, 882, 876, 563, 398, 992, 931] [553, 1352, 411, 992, 95, 1229
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1;
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 ALL GOOD Total Moves 2
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 ALL GOOD Total Moves 1
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = -1
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id =
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == c_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
print(min_col_id)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
print(min_col_id)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 98, in solution exp() File "/tmp/solution.py", line 91, in exp A = solve_core(A) File "/tmp/solution.py", line 15, in solve_core print(min_col_id) UnboundLocalError: local variable 'min_col_id' referenced before assignmentstdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754]
Traceback (most recent call last): File "exec.py", line 141, in <module> main() File "exec.py", line 103, in main result = solution( A ) File "/tmp/solution.py", line 98, in solution exp() File "/tmp/solution.py", line 91, in exp A = solve_core(A) File "/tmp/solution.py", line 15, in solve_core print(min_col_id) UnboundLocalError: local variable 'min_col_id' referenced before assignmentstdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
print(min_row_id)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
print(min_row_id)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] 0 Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] 0 Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (row_sums[i] == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (row_sums[i] == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (row_sums[i] == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (row_sums[i] == row_min_sum):
min_row_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
min_col_id = [i for i in range(3) if (col_sums[i] == col_min_sum)][0]
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
min_row_id = [i for i in range(3) if (row_sums[i] == row_min_sum)][0]
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
#Identify rows and columns that need an increment
rows = set()
cols = set()
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
for i in range(3):
if (row_sums[i] != s):
rows.add(i)
if (col_sums[i] != s):
cols.add(i)
#print(rows)
#print(cols)
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(len(rows) > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = rows.pop()
cid = cols.pop()
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in ran]
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
if (row_sums[rid] != s):
rows.add(rid)
elif (col_sums[cid] != s):
cols.add(cid)
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[])
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (row_sums[rid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
[654, 114, 25, 759, 281, 250, 228, 142, 754] Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
print(A)
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Tota
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Tota
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 1000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(1000):
A = []
for j in range(9):
A.append(randint(0, 100000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 1000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 1000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 1000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#colums
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 ALL GOOD
Invalid result type, array expected, <class 'NoneType'> found.stdout:
Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 Total Moves 4 ALL GOOD
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
#solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
solve_core(A)
Invalid result type, array expected, <class 'NoneType'> found.
Invalid result type, array expected, <class 'NoneType'> found.
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
retsolve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
return solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
return solve_core(A)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
from random import randint
def solve_core(A):
problem_row_cols = 0
#Step 1 find max sum
row_sums = []
row_sums.append(A[0] + A[1] + A[2])
row_sums.append(A[3] + A[4] + A[5])
row_sums.append(A[6] + A[7] + A[8])
row_min_sum = min(row_sums)
col_sums = []
col_sums.append(A[0] + A[3] + A[6])
col_sums.append(A[1] + A[4] + A[7])
col_sums.append(A[2] + A[5] + A[8])
col_min_sum = min(col_sums)
s = max(max(col_sums), max(row_sums))
for i in range(3):
if (row_sums[i] < s):
problem_row_cols += 1
if (col_sums[i] < s):
problem_row_cols += 1
if (row_sums[i] == row_min_sum):
min_row_id = i
if (col_sums[i] == col_min_sum):
min_col_id = i
#print("maximal sum", s)
#Step 2
move_count = 0
while(problem_row_cols > 0):
#Get row with the lowest sum
rid = min_row_id
cid = min_col_id
inc = s - max(row_sums[rid], col_sums[cid])
A[3*rid + cid] += inc
row_sums[rid] += inc
col_sums[cid] += inc
if (row_sums[rid] == s):
problem_row_cols -= 1
if (col_sums[cid] == s):
problem_row_cols -= 1
#Find new min row
row_min_sum = min(row_sums)
col_min_sum = min(col_sums)
min_row_id = [i for i in range(3) if row_sums[i] == row_min_sum][0]
min_col_id = [i for i in range(3) if col_sums[i] == col_min_sum][0]
move_count += 1
#print("Total Moves", move_count)
#print(A)
return A;
def evaluate(A):
#Step 1 find max sum
s = A[0] + A[1] + A[2]
for i in range(3):
#rows
if (A[3*i] + A[3*i + 1] + A[3*i + 2] != s):
return False
#columns
if (A[i] + A[i + 3] + A[i + 6] != s):
return False
return True
def exp():
A = 9 * [0]
for i in range(50):
A = []
for j in range(9):
A.append(randint(0, 10000000))
A = solve_core(A)
assert(evaluate(A))
print("ALL GOOD")
def solution(A):
#exp()
return solve_core(A)
The solution obtained perfect score.
Random matrices with medium value range, max - min <= 2000, and two zeros.