很简单的枚举题,具体往下看注释部分
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e3+10;
const int inf=0x3f3f3f3f;
int a[maxn];
int main(){
int n,m;
while(cin>>n>>m){
int x;
vector<int> v;
for(int i=0;i<m;i++){
cin>>x;
v.push_back(x);
}
int ans=inf;
for(int i=1;i<=n;i++){ //集合位置 如1
int mx=0;
for(int j=0;j<m;j++) {
int p=v[j];
//一个人无论怎么走,都会是俩种情况 2到1,2-1或5-(2-1)
int a=abs(p-i),b=n-a;
mx=max(mx,min(a,b));//每人到集合点最长时间
}
ans=min(mx,ans);//每个集合点的最短时间
}
cout<<ans<<endl;
v.clear();
}
}