#B13. K 件物品的最大和

K 件物品的最大和

题目描述

小明参加了一个集卡游戏,背包里共有三种类型的卡片:

  1. 数值为 1 的卡片,共有 numOnes 张。
  2. 数值为 0 的卡片,共有 numZeros 张。
  3. 数值为 -1 的卡片,共有 numNegOnes 张。

小明需要从背包中恰好取出 kk 张卡片。为了使手中卡片的数值总和最大,他应该如何选择卡片?请你计算他能获得的最大数值总和。

注意:

  • 每种卡片的数量是有限的,不能超过库存。
  • 必须恰好取 kk 张,不能多也不能少。
  • 优先取数值大的卡片是贪心策略的核心。

输入格式

一行包含四个整数 numOnes, numZeros, numNegOnes, k,分别表示数值为 1、0、-1 的卡片数量以及需要选取的卡片总数。

数据范围:

  • $0 \le \text{numOnes}, \text{numZeros}, \text{numNegOnes} \le 50$
  • $1 \le k \le \text{numOnes} + \text{numZeros} + \text{numNegOnes}$

输出格式

输出一个整数,表示选取 kk 张卡片能得到的最大数值总和。

3 2 1 4
3