P1007 独木桥 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
int main(){
int d,n;
cin>>d>>n;
int maxx=0,minn=0;
for(int i=1;i<=n;i++){
int x;
scanf("%d",&x);
maxx=max(maxx,max(d-x+1,x));
minn=max(minn,min(d-x+1,x));
}
printf("%d %d\n",minn,maxx);
return 0 - 0;
}
如果碰撞的话,可以看作是穿过去的,两个往回返的人可以交换身份看作是一直往前走。
所以最大值可以看作是一个人走到两头的最大值,然后对所有人的时间再取最大值即为所有人的最大通行时间
所以最小值可以看作是一个人走到两头的最小值,然后对所有人的时间再取最小值即为所有人的最小通行时间