CF1394E Boboniu and Banknote Collection

题目描述

无论遇到什么麻烦,都不要害怕,要微笑着面对。 我又赚了十亿美元! —— Boboniu Boboniu 发行了自己的货币,名为 Bobo 元。Bobo 元(BBY)是一系列货币。Boboniu 给每种货币分配了一个正整数编号,比如 BBY-1、BBY-2 等。 Boboniu 有一套 BBY 收藏。他的收藏可以看作一个序列。例如: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1394E/af5ca1ff6453d4700bd6b890ce1c8859d023ad2b.png) 我们可以用长度为 $n=9$ 的序列 $a=[1,2,3,3,2,1,4,4,1]$ 来表示它。 现在 Boboniu 想要折叠他的收藏。你可以想象 Boboniu 把他的收藏贴在一条长纸条上,然后在货币之间进行折叠: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1394E/874b77ee60693cdb02072ea946ee0568b1eda880.png) Boboniu 只会将相同编号的货币折叠在一起。换句话说,如果 $a_i$ 被折叠到 $a_j$ 上($1\le i,j\le n$),那么必须有 $a_i=a_j$。Boboniu 并不在意你在折叠过程中是否遵守这个规则,但最终结果必须满足这个条件。 折叠的正式定义见下方提示。 根据上图,你最多可以将 $a$ 折叠两次。实际上,对于 $a=[1,2,3,3,2,1,4,4,1]$,最多可以折叠两次。因此,它的最大折叠次数是 $2$。 作为 Boboniu 的国际粉丝,你需要计算最大折叠次数。 给定一个长度为 $n$ 的序列 $a$,对于每个 $i$($1\le i\le n$),你需要计算 $[a_1,a_2,\ldots,a_i]$ 的最大折叠次数。

输入格式

第一行包含一个整数 $n$($1\le n\le 10^5$)。 第二行包含 $n$ 个整数 $a_1,a_2,\ldots,a_n$($1\le a_i\le n$)。

输出格式

输出 $n$ 个整数,第 $i$ 个数表示 $[a_1,a_2,\ldots,a_i]$ 的最大折叠次数。

说明/提示

形式化地,对于长度为 $n$ 的序列 $a$,我们定义折叠序列为长度为 $n$ 的序列 $b$,满足: - $b_i$($1\le i\le n$)要么为 $1$,要么为 $-1$。 - 令 $p(i)=[b_i=1]+\sum_{j=1}^{i-1}b_j$。对于所有 $1\le i