Advent of code

 13 décembre 2015 

  Knights of the Dinner Table :
  1. code.py
input = ((0,2,1), (0,26,2), (0,-82,3), ... (7,-73,5), (7,-89,6))   


PARTIE = 1
# PARTIE = 2

if PARTIE == 1:
    N = 8
else:
    N = 9



points = N*[None]
for i in range(N):
    points[i] = N*[0]

for t in input:
    points[t[0]][t[2]] += t[1]
    points[t[2]][t[0]] += t[1]

print(points)

def score(perm, points):
    tot = 0
    for i in range(1, len(perm) + 1):
        #print(i % len(perm), i-1, len(perm))
        #print(" ", perm[i % len(perm)], perm[i-1], len(points))
        tot += points[perm[i % len(perm)]][perm[i-1]]
    return tot

import itertools

best = None
bestP = None

for p in itertools.permutations(range(N-1)):
    p = p + (N-1,)
    s = score(p, points)
    if best == None or s > best:
        best = s
        bestP = list(p)

print(best, bestP)