A7323 | 午枫的登山挑战
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小午和他的两个朋友小枫、小安计划一起登山。山上有 $N$ 个营地,从山脚到山顶依次编号为 $1,2,\dots,N$。小午从营地 $1$ 出发,初始体力为 $T$。
从营地 $i$ 前往营地 $i+1$ 需要消耗 $A_i$ 点体力($1 \le i \le N-1$)。如果移动后体力小于等于 $0$,则无法继续前进。
山上有 $M$ 个补给点,第 $i$ 个补给点位于营地 $X_i$,当小午到达该营地时,可以立即恢复 $Y_i$ 点体力。
小午想知道,他能否成功到达山顶营地 $N$,与小枫和小安汇合?
从营地 $i$ 前往营地 $i+1$ 需要消耗 $A_i$ 点体力($1 \le i \le N-1$)。如果移动后体力小于等于 $0$,则无法继续前进。
山上有 $M$ 个补给点,第 $i$ 个补给点位于营地 $X_i$,当小午到达该营地时,可以立即恢复 $Y_i$ 点体力。
小午想知道,他能否成功到达山顶营地 $N$,与小枫和小安汇合?
输入格式
第一行包含三个整数 $N$、$M$ 和 $T$,分别表示营地数量、补给点数量和初始体力值。
第二行包含 $N-1$ 个整数 $A_1, A_2, \dots, A_{N-1}$,表示相邻营地之间移动需要消耗的体力。
接下来 $M$ 行,每行包含两个整数 $X_i$ 和 $Y_i$,表示一个补给点所在的营地编号和可以恢复的体力值。
第二行包含 $N-1$ 个整数 $A_1, A_2, \dots, A_{N-1}$,表示相邻营地之间移动需要消耗的体力。
接下来 $M$ 行,每行包含两个整数 $X_i$ 和 $Y_i$,表示一个补给点所在的营地编号和可以恢复的体力值。
输出格式
如果小午能够到达营地 $N$,输出
Yes;否则输出 No。输入输出样例
输入 #1
4 1 10 5 7 5 2 10
输出 #1
Yes
输入 #2
4 1 10 10 7 5 2 10
输出 #2
No
样例 #1 解释
- 小午从营地 $1$ 出发,体力为 $10$。
- 前往营地 $2$ 消耗 $5$ 点体力,剩余体力 $5$。到达营地 $2$(补给点),恢复 $10$ 点体力,体力变为 $15$。
- 前往营地 $3$ 消耗 $7$ 点体力,剩余体力 $8$。
- 前往营地 $4$ 消耗 $5$ 点体力,剩余体力 $3$。
因此可以到达营地 $4$,输出
Yes。样例 #2 解释
- 小午从营地 $1$ 出发,体力为 $10$。
- 前往营地 $2$ 需要消耗 $10$ 点体力,移动后体力为 $0$,由于体力小于等于 $0$,无法继续前进。
因此无法到达营地 $4$,输出
No。数据范围
对于 $100\%$ 的测试数据,满足 $2 \le N \le 10^5$ , $0 \le M \le N-2$ , $1 \le T \le 10^9$ , $1 \le A_i \le 10^9$ , $1 < X_1 < \dots < X_M < N$ , $1 \le Y_i \le 10^9$ , 输入中的所有数值均为整数。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?