//先排序,然后将数大的一部分减去数小的一部分,因为大部分数都有相邻的两部分,所以
//要减两次,将数大的一部分2-数小的一部分2,大概思路是这样的,里面还有一些细节需要思考
#include<iostream>
#include<algorithm>
#include<cmath>
#define _Max 50
using namespace std;
int main(){
int n,h[_Max],carry=0,a,b=0,c=0,d=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>h[i];
}
sort(h,h+n);
if(n==1){
carry=0;
}
else if(n==2){
carry=h[1]-h[0];
}
else if(n==3){
carry=h[2]-h[0];
}
else if(n>3){
a=n/2;
for(int i=0;i<a-1;i++){
b+=h[i];
}
b=b2
b-=h[a-2];
if(n%2==0){
for(int i=a+1;i<n;i++){
c+=h[i];
}
c=c2;
c-=h[a+1];
c=c+h[a]-h[a-2]+h[a+1]-h[a-1];
}
else{
for(int i=a+2;i<n;i++){
c+=h[i];
}
c=c*2;
c-=h[a+2];
c=c+h[a+1]-h[a-2]+h[a+2]-h[a-1];
d=max(h[a]-h[a-1],h[a+1]-h[a]);
}
carry=c-b+d;
}
cout<<carry<<endl;
return 0;
}</cmath></algorithm></iostream>