# HackerEarth Easy Strong Permutation problem solution

In this HackerEarth Easy Strong, Permutation problem solution Kevin has a sequence of integers a1, a2, ..., an. Define the strength of the sequence to be

|a1 - a2| + |a2 - a3| + ... + |an-1 - an| + |an - a1|.

Kevin wants to make his sequence stronger, so he reorders his sequence into a new sequence b1, b2, ..., bn. He wants this new sequence to be as strong as possible. What is the largest possible strength of the resulting sequence?

## HackerEarth Easy Strong Permutation problem solution.

`#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll p = 1e9+7;const int MAXN = 1e5+5;ll nums[MAXN], n, sum;int main() {    cin >> n; for (int i = 0; i < n; ++i)        cin >> nums[i];    sort(nums, nums+n);    for (int i = 0; i < n/2; ++i)        sum -= 2*nums[i], sum += 2*nums[n-1-i];    cout << sum << "\n";}`

### Second solution

`#include <bits/stdc++.h>using namespace std;#define int long long#define MAXN 100005int arr [MAXN]; main(){    ios_base::sync_with_stdio(0);     int n; cin >> n; assert(1<=n && n<=1e5); for (int g=1; g<=n; g++) {cin >> arr[g]; assert(0<=abs(arr[g]) && abs(arr[g])<=1e9);}     sort(arr+1, arr+n+1);     vector <int> a, b;     for (int g=1; g<=n/2; g++) a.push_back(arr[g]);     for (int g=n/2+1; g<=n; g++) b.push_back(arr[g]);     int ans = 0;     vector <int> c; //    if (a.size() >= b.size()){        int ans1 = 0;         c.clear();         for (int g=0; g<b.size(); g++) {c.push_back(a[g]); c.push_back(b[g]);}        if (a.size() > b.size()) c.push_back(a.back());         for (int g=0; g<c.size()-1; g++) ans1+=abs(c[g+1] - c[g]);         ans1+=abs(c.back() - c);        ans = max(ans, ans1);     }    else{        int ans2 = 0;         c.clear();         for (int g=0; g<a.size(); g++){            c.push_back(b[g]);             c.push_back(a[g]);        }        if (b.size() > a.size()) c.push_back(b.back());         for (int g=0; g<c.size()-1; g++) ans2+=abs(c[g+1] - c[g]);         ans2+=abs(c.back() - c);        ans = max(ans, ans2);     }//    cout << ans;    return 0; }`