Problem5949--游向鱼塘

5949: 游向鱼塘

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

有两个鱼塘被一条长度为 $m$ 的窄河道连接,假设 $A$ 鱼塘连接的窄河道为坐标轴的原点,$B$ 鱼塘在 $A$ 鱼塘的右边。
窄河道中有 $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$ 表示向右)。

Output

输出共一行,一个整数,表示最后进入池塘的那条鱼花费的时间。

Sample 1 Input

5 2
1 3
0 1

Sample 1 Output

4

HINT

题目来源:计蒜客信息学 7 月编程新手赛 T3

EDITORIAL

REF Code

Source/Category