hi.塔台超频

[语言月赛 202307] 塔台超频

题目描述

在一条笔直的马路上有 n n n 个塔台,它们被依次标号为 1 , 2 , ⋯   , n 1, 2, \cdots, n 1,2,,n,分别处于距离马路起点 a 1 , a 2 , ⋯   , a n a _ 1, a _ 2, \cdots, a _ n a1,a2,,an a 1 < a 2 < ⋯ < a n a _ 1 < a _ 2 < \cdots < a _ n a1<a2<<an)的位置。

每个塔台初始时有一个通讯半径 b 1 , b 2 , ⋯   , b n b _ 1, b _ 2, \cdots, b _ n b1,b2,,bn,这代表,对于 i i i 号塔台,其可以与 [ a i − b i , a i + b i ] [a _ i - b _ i, a _ i + b _ i] [aibi,ai+bi] 范围内的塔台通讯。

需要特别注意,对于两个塔台 A、B,当且仅当 A 塔台的位置处在 B 塔台的通讯范围内,B 塔台才能向 A 塔台传递信号。请注意这里不是「二者的通讯范围重合,即可通讯」。

现在你可以对这些塔台进行超频。具体的,你可以指定一个电压 k k k,之后所有塔台都会被加上 k k k 的电压,通讯半径都会增大 k k k。这里的 k k k 仅可为非负整数。

现在要求你通过超频,使信号可以从 1 1 1 号塔台依次通过 2 , 3 , ⋯ 2, 3, \cdots 2,3, 号塔台传输到 n n n 号塔台,但是由于不合理的超频会较严重地磨损塔台,因此你想要尽可能降低超频的电压。

请你计算出,为了达到以上目的,塔台超频需要的最小电压是多少。

输入格式

输入共 n + 1 n + 1 n+1 行。

第一行为一个整数 n n n,代表塔台的数量。
接下来 n n n 行,每行两个整数 a i , b i a _ i, b _ i ai,bi,分别代表各个塔台的位置和初始通讯半径。

输出格式

输出共一行一个整数,代表为了达到目的,塔台超频需要的最小电压。

样例 #1

样例输入 #1

5
0 4
2 2
3 1
12 8
19 2

样例输出 #1

8

提示说明

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 2 ≤ n ≤ 5 × 1 0 5 2 \leq n \leq 5 \times 10 ^ 5 2n5×105 0 ≤ a i , b i ≤ 1 0 9 0 \leq a _ i, b _ i \leq 10 ^ 9 0ai,bi109

测试点编号特殊限制
1 ∼ 2 1 \sim 2 12 n ≤ 10 n \leq 10 n10 a i , b i ≤ 200 a _ i, b _ i \leq 200 ai,bi200
3 3 3 a i = i a _ i = i ai=i
4 ∼ 5 4 \sim 5 45 b i = 0 b _ i = 0 bi=0
6 6 6所有 b i b _ i bi 相同
7 ∼ 10 7 \sim 10 710无特殊限制

代码内容

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const ll N=5e5+10;
ll a[N],b[N];

int main()
{
    ll n;
    cin >> n;
    for(ll i=0;i<n;i++)
        cin>>a[i]>>b[i];

    ll k=0;
    for(ll i=0;i<n-1;i++)
    {
        ll d=a[i+1]-a[i];
        if(b[i]<d)
            k=max(k,d-b[i]);
    }
    
    cout<<k<<endl;
    return 0;
}
  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值