把“选择两个数各减一”看成“先给没有被选择的那个数加一,再把三个数各减一”。
设总共进行 KKK 次统一减一,那么必须先用至多 KKK 次加一把三个数都补到 KKK,所以需要 K≥max(A,B,C)K\ge\max(A,B,C)K≥max(A,B,C),并且补齐次数 (K−A)+(K−B)+(K−C)(K-A)+(K-B)+(K-C)(K−A)+(K−B)+(K−C) 不能超过 KKK。
将三数排序为 x≤y≤zx\le y\le zx≤y≤z。最小候选只能是 K=zK=zK=z,此时条件化为 z≥(z−x)+(z−y)z\ge(z-x)+(z-y)z≥(z−x)+(z−y),即 x+y≥zx+y\ge zx+y≥z。若成立,答案为 zzz;否则增大 KKK 只会让补齐需求增长得更快,因而无解。
时间复杂度和额外空间复杂度均为 O(1)O(1)O(1)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户