链接
题解
一开始想麻烦了,但是 w a wa wa了几发之后恍然发现原来我还可以交换 1 1 1和 n n n
那这个问题就变得简单了,如果本来距离就是 n − 1 n-1 n−1了,那我索性直接交换 1 1 1和 n n n
否则把离边界更远的那个元素交换到边界去
代码
#include <bits/stdc++.h>
#define rep(_,__) for(_=1;_<=(__);_++)
using namespace std;
int main()
{
int n, a, b, x, i;
cin>>n;
rep(i,n)
{
cin>>x;
if(x==1)a=i;
if(x==n)b=i;
}
if(a>b)swap(a,b);
cout<<abs(a-b)+max(a-1,n-b);
return 0;
}