[codeforces]Checkpoints

来源:互联网 发布:淘宝店晨练服 编辑:程序博客网 时间:2024/06/11 17:26
#include<bits/stdc++.h>using namespace std;int n,st;int a[100010];int p,ls,rs,ans=0x3f3f3f3f;int main(){    cin>>n>>st;    if(n==1){cout<<0;return 0;}    for(int i=1;i<=n;i++)cin>>a[i];    sort(a+1,a+1+n);    if(n==2)    {        if(st<a[1])        {            cout<<a[1]-st;        }        else if(st<a[2])        {            cout<<min(st-a[1],a[2]-st);        }        else        {            cout<<st-a[2];        }        return 0;    }    p = lower_bound(a+1,a+1+n,st)-a;    if(p==1)    {        cout<<a[n-1]-st;    }    else if(p>n)    {        cout<<st-a[2];          }    else if(st<=a[2])    {        ans = min(ans,a[n]-st);        ans = min(ans,abs(a[n-1]-st)*2+st-a[1]);        ans = min(ans,a[n-1]-st+(st-a[1])*2);        cout<<ans;    }    else if(st>=a[n-1])    {        ans = min(ans,(st-a[2])*2+a[n]-st);        ans = min(ans,(st-a[2])+2*(a[n]-st));        ans = min(ans,st-a[1]);        cout<<ans;    }    else    {        ans = min(ans,abs(a[n]-st)+(st-a[2])*2);        ans = min(ans,abs(a[n]-st)*2+st-a[2]);        ans = min(ans,(st-a[1])*2+a[n-1]-st);        ans = min(ans,st-a[1]+2*(a[n-1]-st));        cout<<ans;    }    return 0;}
0 0
原创粉丝点击