AT_otemae2019_c カード並べ 2 (Arranging Card 2)
题目描述
ピ太郎拥有两套各包含 $N$ 张卡片的卡片组。第一组称为 $A$,卡片上依次写有数 $a_1$ 到 $a_N$;第二组称为 $B$,卡片上依次写有数 $b_1$ 到 $b_N$。
ピ太郎可以随时按自己的喜好多次重新排列卡片组 $B$。
接下来,ピ太郎将进行 $N$ 次游戏,每次游戏的规则如下:
- 在第 $i$ ($1 \leq i \leq N$) 次游戏中,定义数列 $C_i$ 为卡片组 $A$ 的前 $i$ 张卡片所组成的数列。
- 你需要重新排列卡片组 $B$,使得数列 $C_i$ 在重新排列后的卡片组 $B$ 所组成的序列中非重叠地出现次数最多。
- 注意,数列 $C_i$ 的位置不能重叠。例如,数列 `{1 2 1 2 1 2 1 2}` 可以表示为 `{(1 2 1 2) (1 2 1 2)}`,其中数列 `{1 2 1 2}` 出现了 $2$ 次,不能将其视作其以任何重叠形式(如 `{(1 2 1 2) 1 2 1 2}` 或 `{1 2 (1 2 1 2) 1 2}` 等)出现 $3$ 次。
- 你需要输出数列 $C_i$ 在排列后的卡片组 $B$ 中的最大不重叠出现次数,也就是游戏得分。
请编写程序,计算并输出每场游戏中ピ太郎能够获得的最高得分。
输入格式
从标准输入按以下格式读取输入:
> $N$ $a_1$ $a_2$ $\cdots$ $a_N$ $b_1$ $b_2$ $\cdots$ $b_N$
输出格式
输出 $N$ 行。第 $i$ ($1 \leq i \leq N$) 行表示第 $i$ 次游戏中ピ太郎能获得的最高得分。
说明/提示
### 约束条件
- 所有输入均为整数。
- $2 \leq N \leq 100\,000$。
- $1 \leq a_i, b_i \leq 100\,000$ ($1 \leq i \leq N$)。
### 子任务
1. (16 分)$N \leq 8$。
2. (10 分)$a_i = 1$ ($1 \leq i \leq N$)。
3. (24 分)$N \leq 1\,000$。
4. (50 分)无其他限制条件。
**本翻译由 AI 自动生成**