红绿灯
链接:https://ac.nowcoder.com/acm/evaluate/392/D
来源:牛客网
来源:牛客网
题目描述
牛客公司的大门前开通了一条新的道路,长L米。牛客公司为了更好的管理这条道路,将道路平均划分为L段,并用L+1个点来标注每个位置,并设置了很多红绿灯。如果位置i处有红绿灯,则意味着位置i处的汽车必须等到绿色才能向前前进.交通信号灯只有红色或绿色,每5秒钟更换一次。
有一些车在等待进入这条路,每辆车长1米,在道路的同一个位置上不会有两辆车同时存在。一旦汽车进入了这条路,它就无法超越其他的车辆。每个红绿灯都以红色开始,但第一个红灯的持续时间在1-5秒之间变化,包括1和5秒。然后五秒钟的循环就会开始。对于每个交通灯,初始红灯的持续时间可以不同。
假设道路从左到右,汽车的移动如下:
第一步:已经在路上的(从左到右)的每辆车都试图向右移动,但是它可以被另一辆车或红灯阻挡(类似坐标轴,汽车向右意味着坐标增加)。
如果道路的位置0是空的,则还没有进入道路的汽车进入位置0,但不进行移动。
第二步:更新红绿灯,这一步没有时间。
第三步:如果所有的车辆都已经离开了道路,模拟停止,否则请转到第一步。
请你确定每个红绿灯第一个红灯的持续时间,最大限度地减少所有汽车离开道路的时间。
有一些车在等待进入这条路,每辆车长1米,在道路的同一个位置上不会有两辆车同时存在。一旦汽车进入了这条路,它就无法超越其他的车辆。每个红绿灯都以红色开始,但第一个红灯的持续时间在1-5秒之间变化,包括1和5秒。然后五秒钟的循环就会开始。对于每个交通灯,初始红灯的持续时间可以不同。
假设道路从左到右,汽车的移动如下:
第一步:已经在路上的(从左到右)的每辆车都试图向右移动,但是它可以被另一辆车或红灯阻挡(类似坐标轴,汽车向右意味着坐标增加)。
如果道路的位置0是空的,则还没有进入道路的汽车进入位置0,但不进行移动。
第二步:更新红绿灯,这一步没有时间。
第三步:如果所有的车辆都已经离开了道路,模拟停止,否则请转到第一步。
请你确定每个红绿灯第一个红灯的持续时间,最大限度地减少所有汽车离开道路的时间。
输入描述:
输入包括五行: 第一行输入一个正整数L,表示道路的长度。 第二行输入一个正整数n,表示汽车的数量。 第三行输入n个正整数,表示每辆汽车的速度。 第四行输入一个正整数m,表示灯的数量。 第五行输入m个正整数,表示每个灯的位置。
输出描述:
输出包括一行,包括一个正整数,表示所有汽车离开道路所需的最短时间。1≤L≤5001 \leq L \leq 5001≤L≤5001≤n≤301 \leq n \leq 301≤n≤301≤汽车的速度≤301 \leq 汽车的速度 \leq 301≤汽车的速度≤300≤红绿灯的位置≤L−20\leq 红绿灯的位置\leq L-20≤红绿灯的位置≤L−2
示例1