#include <stdio.h>
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define MAX_N 1000000
int main(void)
{
int L, n, i;
int x[MAX_N];
scanf("%d %d", &L, &n);
for (i = 0; i < n; i++)
scanf("%d", &x[i]);
// 计算最短时间
int minT = 0;
for (i = 0; i < n; i++)
minT = max(minT, min(x[i], L - x[i]));
// 计算最长时间
int maxT = 0;
for (i = 0; i < n; i++)
maxT = max(maxT, max(x[i], L - x[i]));
printf("%d %d\n", minT, maxT);
return 0;
}
事实上,可以知道两只蚂蚁相遇后,当它们保持原样交错而过继续前进也不会有任何问题。这样看来,可以认为每只蚂蚁都是独立运动的,所以要求最长时间,只要求蚂蚁到竿子端点的最大距离就好了。