문제

worst case의 경우 N!이고, N의 최댓값이 8이므로 최대 8!번 연산해야 한다. 이정도면 모든 경우에 대해 다 계산해봐도 되므로, 순열을 이용해 모든 경우의 수를 다 구해본다. next_permuataion()은 사용하기 전에 배열을 미리 정렬해 놔야 함!

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;

vector<int> v;
int N;

int go() {
	int ans, i;
	ans = 0;
	for (i = 0; i < N - 1; i++) ans += abs(v[i] - v[i + 1]);
	return ans;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int ans, i, tmp;
	cin >> N;
	
	for (i = 0; i < N; i++) {
		cin >> tmp;
		v.push_back(tmp);
	}
	sort(v.begin(), v.end());

	ans = 0;
	do {
		tmp = go();
		ans = max(ans, tmp);
	} while (next_permutation(v.begin(), v.end()));

	cout << ans << endl;
	return 0;
}