AT_arc184_c Mountain and Valley Folds

题目描述

我们有一张细长的纸张,其厚度可忽略不计。进行以下操作 $100$ 次:提起右端,以中心为折痕将其对折至左端对齐。完成 $100$ 次折叠后,将纸张重新展开至原始状态。此时纸面上共有 $2^{100} - 1$ 条折痕,这些折痕可分为两类:山折和谷折。下图展示了进行两次操作后的状态,其中红色实线代表山折,红色虚线代表谷折。 关于山折与谷折的定义: - 若折痕处纸张背面相对折叠,则为山折。 - 若折痕处纸张正面相对折叠,则为谷折。 ![折叠示意图](https://img.atcoder.jp/arc184/80090ca5edac0dd6fbd781a6a353719a.png) 给定一个由$N$个非负整数构成的序列 $A = (A_1, A_2, \dots, A_N)$,其中满足 $0 = A_1 < A_2 < \dots < A_N \leq 10^{18}$。 对于从 $1$ 到 $2^{100} - A_N - 1$ 的每个整数 $i$,定义函数 $f(i)$ 如下: - 满足从左数第 $(i + A_k)$ 条折痕为山折的 $k = 1, 2, \dots, N$ 的个数。 求 $f(1), f(2), \dots, f(2^{100} - A_N - 1)$ 中的最大值。

输入格式

输入通过标准输入给出,格式如下: >$N$ > >$A_1$ $A_2$ $\cdots$ $A_N$

输出格式

一行输出答案至标准输出。

说明/提示

### 约束 - $1 \leq N \leq 10^3$ - $0 = A_1 \lt A_2 \lt \dots \lt A_N \leq 10^{18}$ ### 样例解释 1 若以 `M` 和 `V` 分别表示山折与谷折,存在形如 `MMVM` 的连续折痕子序列。由于不存在类似 `MMMM` 的连续子序列,故答案为 $3$。