本题是一道模拟题,核心在于理解红绿灯信号的周期规律以及四个方向的独立排队机制。
设周期 C=R+G,时间从 0 开始计时。
十字路口的红绿灯分为东西向(E/W)和南北向(S/N)两组,两组状态始终相反。东西向红灯亮 R 秒,然后绿灯亮 G 秒,不断循环;南北向则相反——绿灯亮 R 秒,然后红灯亮 G 秒。刚开始时(0秒)东西方向是红灯,南北方向是绿灯。
红绿灯切换无过渡期,红灯结束时绿灯立即开始,无需额外等待。
车辆到达路口时,遇到绿灯直接走,通过路口需要 1 秒,如遇到红灯停下来等。E/W/S/N 四个方向各有一条独立车道,各自排队,互不干扰,而同向后车必须等前车走完才能走。
求从第一辆车到达路口,到最后一辆车完全离开,共同花费多少秒,和最后一辆离开的时间是第几秒。
整数 R:表示东西向红灯持续秒数(对应南北向绿灯时长)。
整数 G:表示东西向绿灯持续秒数(对应南北向红灯时长)。
字符数组:用大写字母表示车辆的来向列表,E=东向西,W=西向东,S=南向北,N=北向南。
整形数组:表示各车辆的到达时间。
二维数组,表示第一辆车到达路口到最后一辆车完全离开的总耗时,以及最后一辆车离开的时间。
补充说明
保证车辆的来向数量和到达时刻数量相等,且到达时刻按非递减顺序排列。
取值范围:
输入
3,5,[E,S,W,N],[0,1,3,6]
输出
[9,9]
说明
周期 C=8 秒。E/W 方向红灯条件:t%8<3,S/N 方向红灯条件:t%8≥3。
所有车辆都在同个 C 周期内:
0 秒到达:0<R 红灯,等 3 秒至 t=3 开始通行,t=4 离开(通行需 1 秒)1 秒到达:直接绿灯通过,t=1 开始,t=2 离开3 秒到达:R=3,第 3 秒已是绿灯,t=3 开始,t=4 离开6 秒到达:6≥3 红灯,需等 2 秒至下一周期 t=8 开始通行,t=9 离开最早到达=0 秒,最晚离开=9 秒,总时间=9−0=9 秒,最后一秒=9
输入
2,3,[E,E,S],[1,3,4]
输出
[5,6]
说明
周期 C=5 秒。E/W 方向红灯条件:t%5<2,S/N 方向红灯条件:t%5≥2。
所有车辆都在同个 C 周期内:
1 秒到达:1<2 红灯,等 1 秒至 t=2 开始通行,t=3 离开(通行需 1 秒)3 秒到达:3≥2 为绿灯;E1 已在 t=3 离开,无需等待,E2 在 t=3 开始,t=4 离开4 秒到达:4≥2 红灯,等 1 秒至下一周期 t=5 开始,t=6 离开最早到达=1 秒,最晚离开=6 秒,总时间=6−1=5 秒,最后一秒=6
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册