// A list of all 8 magic squares let magicSquares: [[[Int]]] = [[[8,1,6],[3,5,7],[4,9,2]], [[6,1,8],[7,5,3],[2,9,4]], [[4,9,2],[3,5,7],[8,1,6]], [[2,9,4],[7,5,3],[6,1,8]], [[8,3,4],[1,5,9],[6,7,2]], [[4,3,8],[9,5,1],[2,7,6]], [[6,7,2],[1,5,9],[8,3,4]], [[2,7,6],[9,5,1],[4,3,8]]] // Square to build var square = [[Int]]() for _ in 1...3 { square.append(readLine()!.characters.split(" ").map({Int(String($0))!})) } func calculateCost(a: [[Int]], _ b: [[Int]]) -> Int { var cost = 0 for (element1, element2) in zip(a.flatMap({$0}), b.flatMap({$0})) { cost += abs(element1 - element2) } return cost } var minCost = Int.max for magicSquare in magicSquares { minCost = min(minCost, calculateCost(square, magicSquare)) } print(minCost)