10819번: 차이를 최대로

첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.

www.acmicpc.net

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int calculate(vector<int> &a) {
    int sum = 0;
    for (int i=1; i<a.size(); i++) {
        sum += abs(a[i] - a[i-1]);
    }
    return sum;
}
int main() {
    int n;
    cin >> n;
    
    vector<int> a(n);
    for (int i=0; i<n; i++) {
        cin >> a[i];
    }

    sort(a.begin(), a.end());

    int ans = 0;

    do {
        int temp = calculate(a);
        ans = max(ans,temp);
    } while(next_permutation(a.begin(), a.end()));

    cout << ans << '\n';
    return 0;
}

'Problem set' 카테고리의 다른 글

[백준] 6603 로또  (0) 2021.01.21
[백준] 10971 외판원 순회 2  (0) 2021.01.21
[백준] 10974 모든 순열  (0) 2021.01.21
[백준] 10973 이전 순열  (0) 2021.01.21
[백준] 10972 다음 순열  (0) 2021.01.21
복사했습니다!