#P1671. 体检(check)
体检(check)
题目描述
Farmer John 正在带他的有 头奶牛去当地的奶牛医院进行体检,他让奶牛排成一行,奶牛 在队伍的最前面,奶牛 在队伍的最后面。
Farmer John 的奶牛有许多不同的品种,他习惯用从 到 的整数来表示每一品种。队伍从前到后第 头奶牛的品种是 。
然而兽医非常挑剔,他只愿意当队伍中第 头奶牛为品种 时才对它进行体检。
Farmer John 不想完全重新排列他的奶牛,于是他打算只执行以下操作一次:选择两个整数 和 ,反转队伍中第 头奶牛到第 头奶牛之间的奶牛的顺序。
Farmer John 想要知道这种方法有多少效果,他想请求你帮忙,对于每一个 ,求出恰好能让 头奶牛被检查的操作区间 的数量。
注意:两种操作 和 不同,当且仅当 或者 。
输入格式
输入的第一行包含 。
第二行包含 。
第三行包含 。
输出格式
输出 行,第 行包含使得 头奶牛被检查的不同操作区间 的数量。
输入输出样例 #1
输入 #1
3
1 3 2
3 2 1
输出 #1
3
3
0
0
当 ,如果 Farmer John 选择 , 或 ,则没有奶牛将会被检查。
当 ,以下操作可以让一头奶牛被检查:
- :FJ 反转第一头和第二头奶牛的顺序,因此新队伍中每头奶牛的品种将为 。第一头奶牛将会被检查。
- :FJ 反转第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 。第二头奶牛将会被检查。
- :FJ 反转第一头,第二头和第三头奶牛的顺序,因此新队伍中每头奶牛的品种将为 。第三头奶牛将会被检查。
输入输出样例 #2
输入 #2
3
1 2 3
1 2 3
输出 #2
0
3
0
3
三种导致 头奶牛被检查的可能操作为 , 和 。
输入输出样例 #3
输入 #3
7
1 3 2 2 1 3 2
3 2 2 1 2 3 1
输出 #3
0
6
14
6
2
0
0
0
两种导致 头奶牛被检查的可能操作为 和 。
数据范围
对于 的数据,有 $1 \leq N \leq 7500 , 1 \leq a_i \leq N , 1 \leq b_i \leq N , 1 \leq l \le r \leq N$ 。
子任务
- 测试点 4-6:
- 测试点 7-13: 无特殊限制
时限:2s
空间:256MB
相关
在下列比赛中: