CODE FESTIVAL 2016 Relay: D - 魔方陣2 / Magic Square 2

,

http://cf16-relay-open.contest.atcoder.jp/tasks/relay_d

右上から左下へのななめの制約を忘れてWAした。

solution

$$ \begin{pmatrix} a & b & -a-b+3c \
-2a-b+4c & c & 2a+b-2c \
a+b-c & -b+2c & -a+2c \end{pmatrix} $$

implementation

#!/usr/bin/env python3
import itertools
a = int(input())
b = int(input())
c = int(input())
k = 3*c
f = [
        [             a,      b,     k-a-b ],
        [ 2*k-2*a-b-2*c,      c, 2*a+b+c-k ],
        [     a+b+2*c-k,  k-b-c,     k-a-c ] ]
assert f[0][2] + f[1][1] + f[2][0] == k
for y in range(3):
    print(*f[y])