1.求最短时间就是对每个蚂蚁,求出它离两个端点的距离,取较小的一个,算时间,然后再求出各个蚂蚁时间最大值。
2.求最长时间,和1相反,取距离两个端点距离最大的一个,算时间。其实两个蚂蚁相遇后往反方向走,可以看作两个蚂蚁穿透对方继续前进.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <climits>
using namespace std;
int main()
{
// freopen("in.txt", "r", stdin);
int t;
cin >> t;
while(t--)
{
int k1 = 0, k2 = 0, l, n;
cin >> l >> n;
for(int i = 0; i < n; i++)
{
int m, s1, s2;
cin >> m;
s1 = m;
s2 = l - m;
if(s1 < s2)
{
k1 = max(k1, s1);
k2 = max(k2, s2);
}
else
{
k1 = max(k1, s2);
k2 = max(k2, s1);
}
}
cout << k1 << " " << k2 << endl;
}
return 0;
}