poj1852 Ants

//这题的思路十分巧妙,两只蚂蚁同时反方向走,因为所有蚂蚁速度一致,可以看作是没有反向,而是继续按原方向走,直到下落...相当于将每只蚂蚁看作是独立运动的(挑战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;
}

原文地址:https://www.cnblogs.com/mofushaohua/p/7789524.html