有 N 根管道,第 i 根长 A_i。其中若干根生锈:若第 i 根生锈(B_i = 1),则其**有效长**为 \max(A_i - C, 0);未生锈(B_i = 0)时有效长为 A_i。
从中任意选出 1 \ldots N 根(每根至多选一次),将它们**首尾相接**成一根管道:
- 若只选 1 根,成品长度即其有效长;
- 若选 M 根(M \ge 2),有 M - 1 处接头,每处使成品长度缩短 K。
成品长度 =(选出的 M 根有效长之和) - (M-1) \times K。
小Z希望成品长度**不小于 D**。在最优选取下,求成品长度的最大值;若任何选取都无法达到 D,输出 `-1`。
- 第 1 行四个整数 N, D, K, C;
- 接下来 N 行,第 i 行两个整数 A_i 和 B_i(0 或 1)。
一行一个整数:成品最大长度(\ge D 时),或 `-1`。
4 15 3 4 10 0 8 1 7 0 6 1
15
3 20 5 3 9 0 8 1 7 0
-1
8 40 4 5 12 0 11 1 20 0 9 1 15 0 7 0 14 1 10 0
55
- 1 \le N \le 10^5
- 1 \le D \le 10^{14}
- 1 \le K \le 10^9,1 \le C \le 10^9
- 1 \le A_i \le 10^9
- B_i \in \{0, 1\}
| 时间限制 | 1 秒 |
| 内存限制 | 128 MB |