##Consider the following "magic" 3-gon ring, filled with the numbers 1 to 6, and
##each line adding to nine.
##
##Working clockwise, and starting from the group of three with the numerically
##lowest external node (4,3,2 in this example), each solution can be described
##uniquely. For example, the above solution can be described by the set: 4,3,2;
##6,2,1; 5,1,3.
##
##It is possible to complete the ring with four different totals: 9, 10, 11, and
##12. There are eight solutions in total.
##
##Total	Solution Set
##9	4,2,3; 5,3,1; 6,1,2
##9	4,3,2; 6,2,1; 5,1,3
##10	2,3,5; 4,5,1; 6,1,3
##10	2,5,3; 6,3,1; 4,1,5
##11	1,4,6; 3,6,2; 5,2,4
##11	1,6,4; 5,4,2; 3,2,6
##12	1,5,6; 2,6,4; 3,4,5
##12	1,6,5; 3,5,4; 2,4,6
##By concatenating each group it is possible to form 9-digit strings; the maximum
##string for a 3-gon ring is 432621513.
##
##Using the numbers 1 to 10, and depending on arrangements, it is possible to
##form 16- and 17-digit strings. What is the maximum 16-digit string for a
##"magic" 5-gon ring?
from itertools import permutations, combinations


def p68():
    listAll = list(range(1, 11))
    listEx10 = list(range(1, 10))
    sumAll = sum(listAll)
    for sumIn in range(15, 35 + 1, 5):
        sumOut = sumAll - sumIn
        sumThreeElement = (sumIn + sumAll) // 5
        for listIn in filter(lambda x: sum(x) == sumIn, combinations(listEx10, 5)):
            listOut = set(listAll).difference(list(listIn))
            x1 = min(listOut)
            for x2, x4 in filter(
                lambda x: sum(x) == sumThreeElement - x1, permutations(listIn, 2)
            ):
                print(x2, x4)
            return
            print(listOut, listIn)


p68()
