#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
long long n,ans,tt,a;
tree<long long,null_type,less<long long>,rb_tree_tag,tree_order_statistics_node_update> t;
bool p[10010000];
int main(){
cin>>n;
cin>>a;
ans=a;
p[a]=1;
t.insert(a);
t.insert(1e9);
t.insert(-1e9);
for(int i=2;i<=n;i++){
cin>>a;
if(!p[a]){
tt=t.order_of_key(a);
ans+=min(abs(*t.find_by_order(tt)-a),abs(*t.find_by_order(tt-1)-a));
t.insert(a);
p[a]=1;
}
}
cout<<ans<<endl;
return 0;
}