#P1793. Storehouse
Storehouse
本题没有可用的提交语言。
问题描述
Advanced Cargo Movement有限公司拥有一个大型仓库,里面存储着各种货物。仓库有有限数量的装卸区(bays),卡车可以在这里装载货物。每天,卡车来到装卸区,装载货物(每辆卡车只装载一种类型的货物),然后前往商店。为了加快装载速度,仓库管理员会提前将货物移动到装卸区。由于每次装载的具体货物数量未知,管理员必须准备比需求更多的货物,剩余货物会被送回仓库。因此,如果下一辆卡车装载的货物与前一辆相同,这将非常有用,因为它避免了不必要的货物移动。卡车的容量远小于装卸区的容量,因此只要卡车装载相同类型的货物,任意数量的卡车都可以在一个装卸区进行装载,而无需重新装货。
你的任务是组织哪种货物应准备在哪个装卸区,以使仓库管理员需要将未装载的货物移回仓库的次数尽可能少。每天开始时,所有装卸区都没有准备任何货物。当天结束时留在装卸区的货物不计入移动次数。
输入格式
第一行输入测试用例的数量。每个测试用例的第一行包含三个整数、、,,,,用空格分隔。是仓库中装卸区的数量,是仓库中货物类型的数量,是当天到达仓库的卡车数量。接下来的行,每行包含一个数字,,表示第辆卡车需要装载的货物类型。
输出格式
对于每个测试用例,程序应首先输出一行"Case X:",其中是从1开始的用例编号。接着输出行,每行对应一辆卡车的处理结果:
- "NO ACTION" —— 如果无需任何操作(即第辆卡车要装载的货物已经在某个装卸区)。
- "LOAD b g" —— 如果需要在第辆卡车到达前将货物移动到装卸区。装卸区当前存放的货物会被自动移回仓库。
每次卡车到达时,必须确保其要装载的货物已准备在某个装卸区。假设每辆卡车在下一辆到达前已离开装卸区,即同一时间只服务一辆卡车。
"LOAD"操作的次数应尽可能少。如果有多个解决方案的操作次数相同,可以输出其中任意一个。不同测试用例的输出之间用空行分隔。
示例输入1
2
2 4 5
1
2
1
4
1
3 3 3
1
3
2
示例输出1
Case 1:
LOAD 1 1
LOAD 2 2
NO ACTION
LOAD 2 4
NO ACTION
Case 2:
LOAD 1 1
LOAD 2 3
LOAD 3 2
来源
CTU Open 2003