[伯俊10819]格差最大


1.問題の説明


差異の最大化

2.問題分析


バックトラックを使用してDFSを解除します.DFSによって伝達されるパラメータはすべての場合に順番に並べられている.

3.私の回答

import sys

n = int(sys.stdin.readline().rstrip())
numbers = list(map(int, sys.stdin.readline().rstrip().split()))

def DFS(number_list):
    global ans

    if len(number_list) == n:
        total = 0
        for num1, num2 in zip(number_list[:-1], number_list[1:]):
            total += abs(num1 - num2)
        ans = max(ans, total)

    for i in range(n):
        if not visited[i]:
            visited[i] = True
            number_list.append(numbers[i])
            DFS(number_list)
            visited[i] = False
            number_list.pop()
            # 백트래킹

ans = 0
visited = [False for _ in range(n)]
DFS([])
print(ans)