gogogo出发咯
引擎已经点火,谁能抢占先机?
小可现在正在赛车比赛现场,即将出发!
小可最开始在第 000 米的位置。赛前小可收到消息,赛道上有 NNN 个氮气加速的道具,其中第 iii 个道具在赛道上第 AiA_iAi 米的位置,它能够为赛车多推进 BiB_iBi 米的距离。起点(即第 000 米)的位置上有个氮气加速道具,它能够提供 KKK 米的推进距离。
请问小可最后会到达多少米的位置停下?
时间限制: 1000 ms
内存限制: 256 MB
输入格式
第一行 222 个正整数 N,KN, KN,K,表示氮气加速道具数量和起点位置道具能够提供的推进距离。
接下来 2∼N+12\sim N + 12∼N+1 行,其中第 i+1i + 1i+1 行有 222 个正整数 Ai,BiA_i, B_iAi,Bi,表示第 iii 个氮气加速道具在第 AiA_iAi 米的位置,且能够为赛车多推进 BiB_iBi 米的距离。
保证 AAA 为升序序列。
输出格式
输出一个整数,表示小可最后的位置。
输入输出样例
样例 1
输入:
2 3
2 1
5 10
输出:
4
样例 2
输入:
3 2
2 1
2 2
5 5
输出:
10
数据范围与样例解释
数据范围
测试点 | NNN | KKK | AiA_iAi | BiB_iBi | 特殊性质 |
---|---|---|---|---|---|
1∼41\sim 41∼4 | 1≤N≤1001\leq N\leq 1001≤N≤100 | 1≤K≤20001\leq K\leq 20001≤K≤2000 | $ 1\leq A_i \leq 5000 $ | $ 1\leq B_i \leq 2000 $ | 1≤∑i=1NBi≤20001\leq \sum\limits_{i=1}^N B_i \leq 20001≤i=1∑NBi≤2000 |
5∼205\sim 205∼20 | 1≤N≤2⋅1051\leq N\leq 2\cdot 10^51≤N≤2⋅105 | 1≤K≤1091\leq K\leq 10^91≤K≤109 | $ 1\leq A_i \leq 10^{18} $ | $ 1\leq B_i \leq 10^9 $ | 无 |
样例解释
样例一中,一开始小可位于第 000 米,能够向前 333 米。行驶到第 222 米时,还能够向前 111 米,获取第 222 米上的道具之后,能够向前 1+1=21 + 1 = 21+1=2 米。继续向前 222 米到达第 444 米后停下。
解析
模拟,详见代码:
#include<bits/stdc++.h>
using namespace std;
int n;
long long a,b,k;
int main() {
int n;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a>>b;
if (a<=k){//能拿到补给
k+=b;//计算新的可以到达的位置
}else{//拿不到
break;
}
}
cout<<k;//最终到达的位置
return 0;
}