poj 1852 Ants(思维)

上古ojhttp://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();
}

 

posted @ 2020-04-17 16:06  Kanoon  阅读(104)  评论(0编辑  收藏  举报