小管理着一艘舰船,同时他需要负责对于舰船上所有干员(在这里指参与战斗的工作人员)的统计与调度。
但最近小没有完成的工作还有很多,还不能休息。同时也就导致了小没时间完成干员的统计与调度,他听说你的编程水平十分优秀,于是计划把这个工作交给你。
小的助理艾雅已经将现在所有干员的信息列在了一张表单上输入给你,上面列明了每个干员的编号、姓名、职业与等级。(保证任意两个干员编号不同)
你需要将表单分别根据:1、职业优先,职业相同按照编号从小到大,和2、等级从小到大优先,等级相同按照编号从小到大排序,并分别输出。
同时,你还会读取个调度需求,每个需求包括四个数值:要求的干员数量,要求的干员职业,要求的干员等级最小值(含)和最大值(含)。对于每个需求,你需要判断是否能满足需求,如果可以满足,优先选取编号小的干员并按照编号从小到大输出其编号到标准输出流中。如果不能满足某个需求,输出"DAMEDANE"并换行。(不包括引号)
注意:如果一个干员已经在一个可以被满足的需求中被调度,在之后的需求中便不能再被调度,即优先满足靠前的调度需求。(若一个调度需求不可满足但能被部分满足,可以被满足的部分对应的干员不会被调度)
附录:干员职业包括如下八个(不包括引号):"caster","medic","supporter","specialist","vanguard","guard","defender","sniper"。按照干员职业排序时请按照此处出示的顺序从后往前排序。