#P16647. [GKS 2018 #D] Candies

    ID: 19010 远端评测题 15000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2018前缀和双指针 two-pointerGoogle Kick Start

[GKS 2018 #D] Candies

题目描述

Supervin 非常喜欢吃糖果。今天,他最喜欢的糖果店提供了 NN 颗糖果,它们排成一行。这一行中的第 ii 颗糖果(从 11 开始计数)的甜度为 SiS_i。注意,糖果的甜度可能是负数,这意味着糖果尝起来是苦的。

Supervin 喜欢吃甜糖果。然而,总甜度超过 DD 的糖果对他来说也会太甜了。Supervin 还意识到,甜度为奇数的糖果是“奇怪的”,他不想吃超过 OO 颗奇怪的糖果。换句话说,奇糖果是指甜度不能被 22 整除的糖果。此外,由于 Supervin 赶时间,他只能吃连续的一段糖果。

因此,他想吃一段连续的非空糖果子集,使得其中奇糖果的数量不超过 OO,且总甜度最大化,但不超过 DD。请帮助 Supervin 确定他能获得的最大总甜度,如果不存在满足这些约束的连续子集,则输出 IMPOSSIBLE

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例包含两行。第一行包含三个整数 NNOODD,含义如上所述。第二行包含七个整数 X1X_1X2X_2AABBCCMMLL;这些值用于生成 SiS_i,生成方式如下:

定义:

  • 对于 i=3i = 3NN,$X_i = (A \times X_{i-1} + B \times X_{i-2} + C) \bmod M$。
  • 对于 i=1i = 1NNSi=Xi+LS_i = X_i + L

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是 Supervin 能获得的最大总甜度,如果不存在满足题目约束的连续子集,则输出 IMPOSSIBLE

2
6 1 1000000000000000
1 1 1 1 0 100 0
6 1 -100
1 1 1 1 0 100 0
Case #1: 13
Case #2: IMPOSSIBLE
3
10 1 8
4 3 4 1 5 20 -10
10 2 8
4 3 4 1 5 20 -10
10 1 8
4 3 4 1 5 20 -19
Case #1: 7
Case #2: 8
Case #3: -5

提示

在样例 #1 中,生成的甜度数组 SiS_i 为:[111122335588],其中加粗并带下划线的数字是奇数。由于 Supervin 只能吃一颗奇糖果,他可以通过取第五颗和第六颗糖果获得最大总甜度。

在样例 #2 中,生成的甜度数组 SiS_i 与样例 #1 相同。然而,这次 Supervin 不能吃总甜度超过 100-100 的糖果,因此没有连续的糖果子集满足约束。

注意:对于本题的大数据集,我们不建议使用解释型/较慢的语言。

限制条件

1T1001 \le T \le 100

2N5×1052 \le N \le 5 \times 10^5

0ON0 \le O \le N

1015D1015-10^{15} \le D \le 10^{15}

0X1,X2,A,B,C1090 \le X_1, X_2, A, B, C \le 10^9

1M1091 \le M \le 10^9

小数据集(测试集 1 – 可见)

L=0L = 0

大数据集(测试集 2 – 隐藏)

5×108L0-5 \times 10^8 \le L \le 0

翻译由 DeepSeek V4 Pro 完成