#766. 银行排队

银行排队

问题描述

kk 个人来银行排队办理业务,银行有 nn 个窗口可以同时办理,每个窗口允许有 mm 个人排队,其余的人在银行大厅等待。当某个窗口排队人数少于 mm 时,在大厅等待的人可进入该窗口排队。每个人都有自己要办的业务,每个业务要花费一定的时间,银行的上班时间是早上 88 点到下午 1717 点,若超过 1717 点,就无法办理相关的业务了。有 qq 次查询,查询 qq 个顾客办理业务结束时的时间。对于无法办理相关业务的查询,输出 sorry。假设第一位顾客从早上 88 点开始办理业务,kk 个顾客编号依次为 1,2,...,k1,2,...,k

输入格式

33 行,第一行 44 个由空格分隔的正整数,分别表示 n,m,k,qn,m,k,q

第二行为 kk 个由空格分隔的正整数,分别表示每个人办理业务所需时间。第三行为 qq 个由空格分隔的正整数,分别表示每次查询时要查询的顾客编号。

输出格式

qq 行,对应每次查询的结果,每个结果的格式为 hh:mm

样例输入

2 2 7 5
1 2 6 4 3 534 2
3 4 5 6 7

样例输出

08:07
08:06
08:10
17:00
sorry

说明

该银行共有两个窗口,每个窗口可同时供 22 人排队,总共有 77 人需要办理业务,有 55 次询问,分别是编号为 3344556677 的顾客结束时间;输出结果显示编号为 33 的顾客在 08:0708:07 分结束,编号为 44 的顾客在 08:0608:06 分结束,编号为 55 的顾客在 08:1008:10 分结束,编号为 66 的顾客在 17:0017:00 分结束,编号为 77 的顾客在开始办理业务前,银行就下班了,所以输出 sorry

数据范围

  • 1n101≤n≤10
  • 1m51≤m≤5
  • 1k,q1001≤k,q≤100
  • 注意:只要顾客在下班前开始办理业务,那就要将其办理完,因此,查询输出的结束时间有可能超过 17:0017:00
  • 备注:初始时,排在前面的 nn 个人会依次进入各窗口队列,剩下的人按顺序进入各个队列,直至队列排满。