#include<bits/stdc++.h>
using namespace std;
int a[32768]={};
struct dp
{
int ax;
int number;
};
dp c[32768];
bool cmp(dp n,dp m)
{
return n.ax<m.ax;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>c[i].ax;
a[i]=c[i].ax;
c[i].number=i;
}
int maxn=c[1].ax;
sort(c+1,c+n+1,cmp);
for(int i=1;i<=n;i++)
{
int m1,m2;
int o,e,x,y;
if(c[i].number==2)
{
maxn+=sqrt((c[i].ax-a[1])*(c[i].ax-a[1]));
continue;
}
if(c[i].number==1)
continue;
for(int j=i;j>=1;j--)
{
if(c[i].number>c[j].number)
{
m1=abs(c[i].ax-c[j].ax);
o=c[i].ax;
e=c[j].ax;
break;
}
}
for(int j=i;j<=n;j++)
{
if(c[i].number>c[j].number)
{
m2=abs(c[i].ax-c[j].ax);
x=c[i].ax;
y=c[j].ax;
break;
}
}
if(m1<=m2)
{
maxn+=m1;
}
else
{
maxn+=m2;
}
}
cout<<maxn;
return 0;
}
结果对了过程不对,,,,
https://www.luogu.com.cn/record/75249241