加油站(c++)

题目描述

小 d 开车在一条路上行驶。假设路是一条直线,他需要从起点出发,行驶到距离起点 $r$ 公里的位置,然后再从那里掉头原路返回起点。

路上有 $n$ 个加油站,第 $i$ 个加油站在距离起点 $a_i$ 公里的位置。小 d 到达加油站时可以把他的车加满油。

车行驶 $1$ 公里需要消耗 $1$ 单位的汽油,请问汽车的油箱至少要能容纳多少单位的汽油才能够使得小 d 完成这段路程?

如果小 d 到达加油站的时候汽油刚好用完,那么也视作他成功到达了加油站并且能够加油。

所有加油站和终点都是在起点同一侧的。

输入描述

第一行两个整数 $n,r$。

如果 $n>0$,第二行输入 $n$ 个整数 $a_i$,保证严格递增即 $a_i<a_{i+1}$。

输出描述

一行一个整数代表答案。

输入样例
3 7
1 2 5
输出样例
4
#include <iostream>
using namespace std;

int a[105];

void solve(){
    int n,r;
    cin >> n >> r;
    for(int i = 1;i <= n;i ++) cin >> a[i];
    int ans = 0;
    a[0] = 0;
    for(int i = 1;i <= n;i ++) ans = max(ans,a[i] - a[i - 1]);
    ans = max(ans,2 * (r - a[n]));
    cout << ans << '\n';
}

int main(){
    solve();
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值