#HK3971. 「JOISC 2023 Day2」水羊羹 2
「JOISC 2023 Day2」水羊羹 2
题目描述
题目译自 JOISC 2023 Day2 T3 「水ようかん 2 / Mizuyokan 2」
水羊羹是一种用红豆沙制成的日式点心,将红豆沙与琼脂混合,并用矩形模具定型,这样就可以做成水羊羹了。
现在 JOI 君有一台水羊羹机器。使用它,JOI 君可以制作一个横向的矩形水羊羹,其上有 条垂直切割线。水羊羹的长度和切割线位置由机器上设置的 个参数 确定。水羊羹的长度为 。从左到右第 条切割线与第 条切割线之间的距离为 。这里,我们考虑水羊羹的最左边为第 条切割线,水羊羹的最右边为第 条切割线。最初,水羊羹机器的参数满足 。
JOI 君计划组织 次茶会。第 次茶会由整数 表示。茶会按如下方式进行:
- 水羊羹机器的参数 被更新,并设置为
- JOI 君用水羊羹机器只做了一个新的水羊羹。他把水羊羹在第 条切割线和第 条切割线之间的部分取出,用于茶会。他吃掉了剩余部分。
- JOI 君沿一些切割线来切为茶会准备的水羊羹。他会将水羊羹切为一或更多块。在这个过程中应满足以下条件:如果这些切好的水羊羹块按最初的位置从左到右排列,那么这些水羊羹块的长度序列应该是锯齿形的。
这里,如果序列中元素交替上升和下降,就称这个序列是锯齿形的。例如,序列 是锯齿形的,但序列 不是锯齿形的。准确地说,一个序列 被称为锯齿形的,当且仅当以下条件中至少一个被满足:
- 对于 ,当 为奇数时满足不等式 ,当 为偶数时满足不等式 。
- 对于 ,当 为奇数时满足不等式 ,当 为偶数时满足不等式 。
因为 JOI 君想要把水羊羹给尽可能多的朋友们,他想最大化步骤 中得到的水羊羹数。
给定初始水羊羹机器的参数和茶会计划,写一个程序计算对于每次茶会,在满足条件的情况下最多能得到的最大水羊羹数。注意,在本题的限制下,满足条件的水羊羹切分方法必然存在。
输入格式
第一行一个整数 。
第二行 个整数 ,
第三行一个整数 。
接下来 行,每行四个整数 。
输出格式
输出 行,第 行输出对于第 次茶会,在满足条件的情况下最多能得到的最大水羊羹数。
6
5 6 8 7 4 9
1
6 9 0 5
3
在第一场茶会,水羊羹机器的参数被设为 。JOI 君使用第 条和第 条切割线之间的部分,如下图所示。

JOI 君可以按如下方案切割水羊羹。

在第一种方案中,水羊羹块的长度为 。因为这个序列不是锯齿形的,所以它不符合要求。在第二种方案中,水羊羹块的长度为 。因为这个序列是锯齿形的,所以它符合要求。在第三种方案中,水羊羹块的长度为 。因为这个序列是锯齿形的,所以它符合要求。
如果 JOI 君使用方法 切割水羊羹的话,他会得到 块。因为他不可能在满足要求的同时切出 块及以上水羊羹,所以第一行输出 。
这组样例满足所有子任务的限制。
4
6 2 3 6
3
3 2 1 3
4 5 1 4
1 1 0 4
1
2
3
在第一个茶会中,茶会上使用的羊羹长度为 ,其上有一条切割线,距离最左端的长度为 。如果 JOI 君不切割,直接使用这块水羊羹的话,他会得到一块水羊羹。这个长度序列为 ,是锯齿形的。因为他不可能获得一个以上的水羊羹块,所以输出 。
在第二个茶会中,茶会上使用的羊羹长度为 ,其上有两条切割线,距离最左端的长度分别为 。如果 JOI 君沿距离最左端长度为 的切割线切割的话,他会得到两块水羊羹,长度序列为 ,是锯齿形的。因为他不可能获得两个以上的水羊羹块,所以输出 。
在第三个茶会中,茶会上使用的羊羹长度为 ,其上有三条切割线,距离最左端的长度分别为 。如果 JOI 君沿距离最左端长度为 和 的切割线切割的话,他会得到三块水羊羹,长度序列为 ,是锯齿形的。因为他不可能获得三个以上的水羊羹块,所以输出 。
这组样例满足子任务 的限制。
数据范围与提示
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
| 子任务编号 | 附加限制 | 分值 |
|---|---|---|
| 无附加限制 |