poj 1852 Ants(思维)
上古oj:http://poj.org/problem?id=1852
题意
长 $l$ cm 的水平杆上有 $n$ 只蚂蚁,每只蚂蚁的速度均为 $1$ cm/s。当蚂蚁到达杆的一端时,它立即从杆上掉下来。当两只蚂蚁相遇时,他们转身开始向相反的方向行走。已知每只蚂蚁初始时距离左端的距离,蚂蚁初始面朝方向未知,求所有蚂蚁掉下来的最短和最长时间。
思路
这题的关键在于发现向相反方向走和保持原方向其实没有任何区别。
代码
#include <cstdio> #include <algorithm> using namespace std; void solve() { int l, n; scanf("%d %d", &l, &n); int mx = 0, mi = 0; for (int i = 0; i < n; i++) { int x; scanf("%d", &x); mx = max(mx, max(x, l - x)); mi = max(mi, min(x, l - x)); } printf("%d %d\n", mi, mx); } int main() { int t; scanf("%d", &t); while (t--) solve(); }