總結,其實感覺用C艹比較方便,有很多已經造好的輪子
兩隻螞蟻在相遇後都會往相反方向,例如A-->, <--B,相遇後<--A, B-->,本質上依舊可以看做兩個在保持原方向前行,<--B, A-->只不過換了個螞蟻而已,對狀態的判斷並無影響。
因爲要所有螞蟻都落下,故min_time是在所有螞蟻在耗時最短的狀態都落下時,當中時間最長的一個
max_time是在所有螞蟻耗時最長的狀態下都落下時,當中時間最長的一個
#include<stdio.h>
int max(int a, int b) {
return a>b?a:b;
}
int min(int a, int b) {
return a>b?b:a;
}
int main(void)
{
int T, l, n, min_time, max_time, ants[100005];
scanf("%d", &T);
while (T--) {
scanf("%d %d\n", &l, &n);
min_time = max_time = 0;
for (int i = 0; i <n; i++) {
scanf("%d", &ants[i]);
min_time = max(min_time, min(ants[i], l-ants[i]));
max_time = max(max_time, max(ants[i], l-ants[i]));
}
printf("%d %d\n", min_time, max_time);
}
return 0;
}