5949: 游向鱼塘
[Creator : ]
Description
有两个鱼塘被一条长度为 $m$ 的窄河道连接,假设 $A$ 鱼塘连接的窄河道为坐标轴的原点,$B$ 鱼塘在 $A$ 鱼塘的右边。
窄河道中有 $n$ 条鱼,每条鱼起始在位置 $x_i\ (0 < x_i < m)$,且每条鱼有一个初始的游动方向($1$ 表示向左,$0$ 表示向右)。
由于河道太窄了,不能同时允许两条鱼在同一个位置游动(两条鱼不能同时出现在一个坐标点)。已知,每秒钟每条鱼沿自己游动的方向游动一单位,如果两条鱼在某个位置相遇,则两条鱼要转向(假设转向瞬间完成),接下来朝各自相反的方向游动。
当一条鱼进入池塘后(到达 $0$ 或者 $m$ 位置表示进入池塘),它就不会再回到河道中了(可以在池塘中自由游动),问最后进入池塘的那条鱼花费了多长时间(单位:秒)。
窄河道中有 $n$ 条鱼,每条鱼起始在位置 $x_i\ (0 < x_i < m)$,且每条鱼有一个初始的游动方向($1$ 表示向左,$0$ 表示向右)。
当一条鱼进入池塘后(到达 $0$ 或者 $m$ 位置表示进入池塘),它就不会再回到河道中了(可以在池塘中自由游动),问最后进入池塘的那条鱼花费了多长时间(单位:秒)。
Input
输入共三行,第一行两个正整数 $m,\ n\ (1≤n<m≤10^5)$,分别代表窄河道的长度,以及鱼的数量。
第二行 $n$ 个以空格隔开的整数,第 $i$ 个数代表第 $i$ 条鱼的位置,保证初始的时候没有两条鱼在同一个位置。
第三行 $n$ 个以空格隔开的整数,第 $i$ 个数代表第 $i$ 条鱼初始的游动方向($1$ 表示向左,$0$ 表示向右)。
第二行 $n$ 个以空格隔开的整数,第 $i$ 个数代表第 $i$ 条鱼的位置,保证初始的时候没有两条鱼在同一个位置。
第三行 $n$ 个以空格隔开的整数,第 $i$ 个数代表第 $i$ 条鱼初始的游动方向($1$ 表示向左,$0$ 表示向右)。
Output
输出共一行,一个整数,表示最后进入池塘的那条鱼花费的时间。
Sample 1 Input
5 2
1 3
0 1
Sample 1 Output
4