Algoritmo para dividir uma lista de números em 2 listas de soma igual

Existe uma lista de número

A lista deve ser dividida em 2 listas de tamanhos iguais, com uma diferença mínima na soma. As somas devem ser impressas.

#Example:
>>>que = [2,3,10,5,8,9,7,3,5,2]
>>>make_teams(que)
27 27

Existe algum erro no algoritmo de código a seguir em alguns caso

Como otimizar e / ou pythonize isso?

def make_teams(que):
    que.sort()
    if len(que)%2: que.insert(0,0)
    t1,t2 = [],[]
    while que:
    val = (que.pop(), que.pop())
    if sum(t1)>sum(t2):
        t2.append(val[0])
        t1.append(val[1])
    else:
        t1.append(val[0])
        t2.append(val[1])
    print min(sum(t1),sum(t2)), max(sum(t1),sum(t2)), "\n"

Question é dehttp: //www.codechef.com/problems/TEAMSEL

questionAnswers(28)

yourAnswerToTheQuestion