小O有三盒糖果,糖果数分别为 a,b 和 c 。 现在小O又有了 x 颗糖果,他要把这 x 颗糖果恰好分到新的 k 个盒子里面去,保证每一个盒子里至少有一颗糖果。这样他就拥有了 k+3 盒糖果,然后他会在这 k+3 盒糖果中挑选出最多的那一盒糖果。 显然, x 颗糖果分到 k 个盒子里往往不止一种方案。小O想知道,无论他如何分配这 x 颗糖果,糖果最多的那一个盒子的编号是否确定且唯一。
第一行输入三个整数 a,b 和 c(1≤ a,b,c ≤ 10^9 ) 表示初始三盒糖果的个数。 第二行输入两个整数 x 和 k( 1≤ k ≤ x ≤ 10^9 ) 代表小O新获得的糖果个数,和需要新放入糖果的盒子数。
如果糖果最多的那一个盒子的编号确定且唯一,输出“ YES ” ,否则,输出“ NO ”。
4 2 3 2 2
YES
5 3 6 100 2
NO
考点:贪心 · 基础数学
限制 1 秒 / 256MB | 标准输入输出
推荐方向:贪心
每一步都取当前最优,靠问题性质保证局部最优能拼成全局最优。
思路框架(贪心 通法 · 非本题专属)
实现要点:贪心题关键在于排序规则:按什么关键字排序决定了策略是否正确。
复杂度:时间 O(n log n)(含排序) | 空间 O(1) ~ O(n)
该范式的通法易错点
对照本题
样例 1
4 2 3 / 2 2YES样例 2
5 3 6 / 100 2NO解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-OPPO-移动开发笔试。