题目描述
小 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;
}