P11669 [USACO25JAN] Cow Checkups B
题目描述
**注意:我们建议使用 Python 以外的其他语言以获得本题目的全部分数。**
Farmer John 的 $N$($1 \leq N \leq 7500$)头奶牛站成一行,奶牛 $1$ 在队伍的最前面,奶牛 $N$ 在队伍的最后面。FJ 的奶牛也有许多不同的品种。他用从 $1$ 到 $N$ 的整数来表示每一品种。队伍从前到后第 $i$ 头奶牛的品种是 $a_i$($1 \leq a_i \leq N$)。
FJ 正在带他的奶牛们去当地的奶牛医院进行体检。然而,奶牛兽医非常挑剔,仅愿意当队伍中第 $i$ 头奶牛为品种 $b_i$($1 \leq b_i \leq N$)时对其进行体检。
FJ 很懒惰,不想完全重新排列他的奶牛。他将执行以下操作恰好一次。
选择两个整数 $l$ 和 $r$,使得 $1 \leq l \le r \leq N$。反转队伍中第 $l$ 头奶牛到第 $r$ 头奶牛之间的奶牛的顺序。
FJ 想要衡量这种方法有多少效果。对于每一个 $c=0 \ldots N$,请帮助 FJ 求出使得恰好 $c$ 头奶牛被检查的不同操作 $(l,r)$ 的数量。两种操作 $(l_1,r_1)$ 和 $(l_2,r_2)$ 不同,当且仅当 $l_1 \neq l_2$ 或者 $r_1 \neq r_2$。
输入格式
输入的第一行包含 $N$。
第二行包含 $a_1, a_2, \ldots, a_N$。
第三行包含 $b_1, b_2, \ldots, b_N$。
输出格式
输出 $N+1$ 行,第 $i$ 行包含使得 $i-1$ 头奶牛被检查的不同操作 $(l,r)$ 的数量。
说明/提示
### 样例解释
#### 样例 #1
如果 FJ 选择 $(l=1,r=1)$,$(l=2,r=2)$ 或 $(l=3,r=3)$,则没有奶牛将会被检查。注意这些操作并没有改变奶牛的位置。
以下操作会导致一头奶牛被检查。
- $(l=1,r=2)$:FJ 反转第一头和第二头奶牛的顺序,因此新队伍中每头奶牛的品种将为 $[3,1,2]$。第一头奶牛将会被检查。
- $(l=2,r=3)$:FJ 反转第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 $[1,2,3]$。第二头奶牛将会被检查。
- $(l=1,r=3)$:FJ 反转第一头,第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 $[2,3,1]$。第三头奶牛将会被检查。
#### 样例 #2
三种导致 $3$ 头奶牛被检查的可能操作为 $(l=1,r=1)$,$(l=2,r=2)$ 和 $(l=3,r=3)$。
#### 样例 #3
两种导致 $4$ 头奶牛被检查的可能操作为 $(l=4,r=5)$ 和 $(l=5,r=7)$。
### 子任务
- 测试点 4-6: $N\le 100$
- 测试点 7-13: 无特殊限制