//这题的思路十分巧妙,两只蚂蚁同时反方向走,因为所有蚂蚁速度一致,可以看作是没有反向,而是继续按原方向走,直到下落...相当于将每只蚂蚁看作是独立运动的(挑战P20) #include <iostream> using namespace std; const int N = 1e6 + 10; int t, l, n; int a[N]; void solve() { int mint = 0, maxt = 0;//min time, max time for ( int i = 0; i < n; i++ ) { mint = max ( mint, min(a[i], l - a[i]) ); //最终求的是所有蚂蚁掉下所用的时间,所以外面取max maxt = max ( maxt, max(a[i], l - a[i]) ); } cout << mint << " " << maxt << endl; } int main() { cin >> t; while (t--) { cin >> l >> n; for ( int i = 0; i < n; i++ ) cin >> a[i]; solve(); } return 0; }