#include<bits/stdc++.h>
$define int long long
using namespace std;
const int M=3e5+10;
typedef long long bint;
struct node{
bint x,l;
}a[M];
int cnt,n;
bint ans;
signed main(){
cin>>n;
a[0]={0,1};
while(n--){
bint tx,tl;
cin>>tx>>tl;
if(tx==a[cnt].x) a[cnt].l=min(a[cnt].l,tl);
while(a[cnt].l>=tl+tx-a[cnt].x) cnt--;
a[++cnt]={tx,tl};
}bint speed=1;
for(int i=0;i<cnt;i++){
speed+=a[i+1].x-a[i].x;
if(speed<=a[i+1].l)ans=max(ans,speed);
else{
ans=max(ans,speed+a[i+1].l>>1),speed=a[i+1].l;
}
}cout<<ans;
}
限速(速度曲线)
于 2024-08-27 19:36:53 首次发布