CSP-X2023 T1(bridge)题解

题目描述

长度为L米的独木桥上有n个人,他们每个人都想以最快的时间离开危险的独木桥。

已知每个人在独木桥上的行走速度为1米/秒,每个人只要能走到独木桥的两个端点中的其中一个就可以离开独木桥。

由于独木桥的桥面宽度很窄,只能容纳一个人通过,当两个人相遇时,他们无法交错通过,只能各自调转方向,继续沿反方向行走。 给你独木桥上的人数n,独木桥的长度L,第i个人的初始位置到独木桥左端点的距离ai米(每个人开始的朝向未知,但他们可以根据需要随时调转行走的方向)。

请计算出所有人同时出发,全部都离开独木桥所需的最短时间。

输入格式

第一行一个整数n,表示人数。

第二行一个整数 L,表示独木桥的长度(米)。

第三行是a1,az...an,其中 a;表示第i个人初始位置到独木桥左端点的距离。

输出格式

输出一行一个整数,表示所有人都离开独木桥所需的最短时间。

说明/提示

样例1说明:三个人同时出发,第一个人向左走,需要 2 秒离开桥,第二个人向右走需要4秒离开桥,第三个人向右走需要3秒离开桥。所以,4秒后,三个人都离开了独木桥。

这道题可以在距离输入后记录距离然后算出时间最小值最后输出。

完整代码如下:

#include<iostream>
using namespace std;
int n,l,a[1919810],maxx=0;
int main(){
    cin>>n>>l;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        maxx=max(min(a[i],l-a[i]),maxx);
    }
    cout<<maxx;
    return 0;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值