Problemstellung
Es gibt einen kreisförmigen See von $ K $ m pro Runde, um den sich $ N $ Häuser befinden. Das $ i $ te Haus befindet sich $ A_i $ Meter im Uhrzeigersinn vom nördlichen Ende des Sees entfernt. Sie können sich nur zwischen Häusern entlang des Seeumfangs bewegen. Finden Sie die kürzeste Reisedistanz, um alle N Häuser ab einem der Häuser zu besuchen.
C - Traveling Salesman around Lake
Da davon ausgegangen werden kann, dass die Häuser am Umfang aufgereiht sind, sollte der Abstand zwischen benachbarten Häusern berechnet und die Summe der Häuser ohne das kleinste genommen werden.
K, N = map(int,input().split())
A = list(map(int, input().split()))
li = []
for i in range(N - 1):
li.append(A[i + 1] - A[i]) #Addiere den Unterschied zwischen den Elementen von Array A zu li
li.append(abs(A[0] + (K - A[-1]))) #Fügen Sie nur den ersten und den letzten Term der Sequenz separat hinzu
print(sum(li) - max(li))
Recommended Posts