题意:蚂蚁爬竿,问所有蚂蚁都从杆上 掉下去的最短和最长时间
思路:根据题意,每只蚂蚁爬行速度一样,所以当蚂蚁碰头转向时,可以当作那两只蚂蚁还是按照原来的方向向前前进,用一个数组记录每只蚂蚁掉出杆的最短时间,另一个数组记录掉出杆的最长时间
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define N 1000005
using namespace std;
int arr[N], a[N], b[N];
int main() {
int n;
scanf("%d", &n);
while (n--) {
int l, m;
scanf("%d %d", &l, &m);
for (int i = 0; i < m; i++)
scanf("%d", &arr[i]);
for (int i = 0; i < m; i++) {
int temp;
a[i] = abs(arr[i] - l);
b[i] = arr[i];
if (a[i] > b[i]) {
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
}
sort(a, a + m);
sort(b, b + m);
printf("%d %d\n", a[m - 1], b[m - 1]);
}
return 0;
}