最快的就是都向离两端最近的一侧爬,所以当最靠内的蚂蚁落地时为最快时间,而最长时间如果考虑碰头折返的话,肯定是过于复杂的,此时我们可以看成两只蚂蚁擦身而过,所以只需要考虑蚂蚁离杆子最花时间的一种走法,记在x=2时向非0侧爬。此时可看成最远距离,并且需要写一个判断大小的函数
![在这里插入图片描述](https://i
#include<stdio.h>
int min(int a,int b)
{
return a<b?a:b;
}
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int n,i,a[50001],l,maxf,maxs;
while(scanf("%d %d",&n,&l)!=EOF)
{
maxf=0,maxs=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
maxf=max(maxf,min(a[i],l-a[i]));
maxs=max(maxs,max(a[i],l-a[i]));
}
printf("%d %d\n",maxf,maxs);
}
return 0;
}