#P16401. [Spoj3372]Round Table
[Spoj3372]Round Table
题目背景
一间圆形宴会厅中摆放着一张圆桌,圆桌周围共有 个座位。宴会厅有两扇门,客人分别在两扇门外排队等候入场。
由于座位之间的通道十分狭窄,一名客人前往自己的座位时,沿途已经入座的客人都必须起身让路。为了尽量减少对客人的打扰,需要合理决定两支队伍的入场顺序。
题目描述
圆桌周围有 个座位,按照顺时针方向依次编号为
宴会厅有两扇门:
- 门 位于座位 与座位 之间;
- 门 位于座位 与座位 之间。
共有 名客人,每名客人的编号均在 到 之间,且所有客人的编号互不相同。编号为 的客人必须坐在编号为 的座位上。
客人被分成两支各有 人的队伍:
- 第一支队伍在门 外排队,只能从门 入场;
- 第二支队伍在门 外排队,只能从门 入场。
每支队伍内部的先后顺序不能改变,但你可以在每一步选择让哪一支队伍的下一名客人入场。
一名客人从自己的门进入后,可以沿圆桌的任意一个方向前往自己的座位。每经过一个已经有人就座的座位,该座位上的客人就必须起身一次让路。
例如,一名客人从门 进入并前往座位 :
- 若沿座位 的方向前进,则座位 到 中已经入座的客人需要起身;
- 若沿另一方向前进,则座位 到 中已经入座的客人需要起身。
客人总会选择使起身次数较少的方向。
请你决定两支队伍的交错入场顺序,使所有客人入座过程中发生的起身总次数最少,并输出这个最小值。
输入格式
第一行包含一个整数 。
第二行包含 个互不相同的整数,表示在门 外排队的客人编号。输入顺序即为入场先后顺序。
第三行包含 个互不相同的整数,表示在门 外排队的客人编号。输入顺序即为入场先后顺序。
两行中的 个编号恰好构成 到 的一个排列。
输出格式
输出一个整数,表示所有客人全部入座时,最少可能发生的起身总次数。
样例
输入
3
4 5 3
6 2 1
输出
3