#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 次询问,分别是编号为 33、44、55、66、77 的顾客结束时间;输出结果显示编号为 33 的顾客在 08:0708:07 分结束,编号为 44 的顾客在 08:0608:06 分结束,编号为 55 的顾客在 08:1008:10 分结束,编号为 66 的顾客在 17:0017:00 分结束,编号为 77 的顾客在开始办理业务前,银行就下班了,所以输出 sorry。

数据范围

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