酷代码 AI
菜单

n 只蚂蚁以每秒 1 厘米的速度在长为 L 厘米 的竹竿上爬行。当蚂蚁爬到竹竿的两端时就会自动掉落。由于竹竿太细,当两只蚂蚁相遇时,它们不能交错而过,只能掉头(掉头时间忽略不计)。对于第 i 只蚂蚁,我们知道它距离竹竿左端的距离为 xi,但不知道它当前的朝向。 请计算所有蚂蚁落下竹竿所需的最短时间和最长时间。 输入 一行包含两个数,分别表示竹竿的长度 L(1<=L<=10^6)和蚂蚁的数量 n(1<=n<=10^6), 第二行表示每个蚂蚁的坐标 xi(0<=xi<=L)。 输出 输出两个数字(用单个空格隔开),分别表示所有蚂蚁从竹竿上掉下来的最早可能的时间和最晚可能的时间。 样例输入 复制 10 3 2 6 7 样例输出 复制 4 8 提示 数据范围与提示 对于 30 % 的数据, 1≤L≤10^3,1<=n<=10 。 对于 100 % 的数据, 1≤L≤10^6,1<=n<=10^6。

最短时间: 每只蚂蚁选择离自己最近的端点方向爬行,计算所有蚂蚁到达端点所需时间的最大值。 最长时间: 每只蚂蚁选择离自己最远的端点方向爬行,计算所有蚂蚁到达端点所需时间的最大值。 ```cpp #include <iostream> #include <algorithm> using namespace std; int main() { int L, n; cin >> L >> n; int minTime = 0, maxTime = 0; for (int i = 0; i < n; i++) { int x; cin >> x; // 最短时间:选择离自己最近的端点 minTime = max(minTime, min(x, L - x)); // 最长时间:选择离自己最远的端点 maxTime = max(maxTime, max(x, L - x)); } cout << minTime << " " << maxTime << endl; return 0; } ``` [2026-01-11 13:31:52 | AI问答 | 204点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多