思路:要访问n-1个点,只有2大类 1到n-1或者2到n,再讨论pos先到1还是先到n-1或者pos先到n-1再到1,n-1到2的类似,四种里面最小值即可。
注意:如果只有1个数直接输出0
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f;
using namespace std;
int a[100005];
int main()
{
int n,pos;
cin>>n>>pos;
for(int i=1;i<=n;i++)cin>>a[i];
if(n==1){
cout<<0<<endl;
return 0;
}
sort(a+1,a+n+1);
int ans=INF;
ans=min(ans,abs(pos-a[1])+a[n-1]-a[1]);
ans=min(ans,abs(a[n-1]-pos)+a[n-1]-a[1]);
ans=min(ans,abs(pos-a[2])+a[n]-a[2]);
ans=min(ans,abs(pos-a[n])+a[n]-a[2]);
cout<<ans<<endl;
}