题意:战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳
一道有点考思维的简单的不得了的题,但是由于我太蒻了我觉得还是要写一下(虽然做对了)。
首先选择用上帝视角来看,如果两个士兵相撞了,会立即按相反方向移动,由于士兵之间是没有差异的,所以我们可以假设士兵互相穿过去了,依然按原方案行走。
然后直接对于每个士兵的位置,求出其向左走或者向右走的时间,求个最小最大值即可。
#include<cstdio>
#include<algorithm>
using namespace std;
int n,l,x,maxx,minn,t;
int main()
{
scanf("%d%d",&l,&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
maxx=max(maxx,max(l-x+1,x));
minn=max(minn,min(l-x+1,x));
}
printf("%d %d",minn,maxx);
return 0;
}