蚂蚁

最快的就是都向离两端最近的一侧爬,所以当最靠内的蚂蚁落地时为最快时间,而最长时间如果考虑碰头折返的话,肯定是过于复杂的,此时我们可以看成两只蚂蚁擦身而过,所以只需要考虑蚂蚁离杆子最花时间的一种走法,记在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;
}

猜你喜欢

转载自blog.csdn.net/qq_43434328/article/details/84147051