题目:
思路:关键在于当两士兵相遇后,分别转向可以看做“穿过”,相当于每个士兵有两个可能选择,向左和向右
最少时间,即所有士兵选择左右两个方向中较小的方向,在所有士兵中选择最大值
最多时间,即所有士兵选择左右两个方向中较大的方向,在所有士兵中选择最大值
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
int left[5010];
int right[5010];
memset(left,0,sizeof(left));
memset(right,0,sizeof(right));
int tmp;
int maxx=0,minn=0;
for(int i=0;i<n;i++)
{
cin>>tmp;
maxx=max(maxx,max(tmp,m-tmp+1));
minn=max(minn,min(tmp,m-tmp+1));
}
cout<<minn<<" "<<maxx<<endl;
}