在线空间设计,超级seo企业网站系统,wordpress搜索字段,外包公司与劳务派遣区别题目描述
K个人来银行排队办理业务#xff0c;银行有n个窗口可以同时办理#xff0c;每个窗口允许有m个人排队#xff0c;其余的人在银行大厅等待。当某个窗口排队人数少于m时#xff0c;在大厅等待的人可进入该窗口排队。每个人都有自己要办的业务#xff0c;每个业务要…题目描述
K个人来银行排队办理业务银行有n个窗口可以同时办理每个窗口允许有m个人排队其余的人在银行大厅等待。当某个窗口排队人数少于m时在大厅等待的人可进入该窗口排队。每个人都有自己要办的业务每个业务要花费一定的时间银行的上班时间是早上8点到下午17点若开始办理业务的时间大于等于17点就无法办理相关的业务了。
有q次查询查询q个顾客办理业务结束时的时间。对于无法办理相关业务的查询输出sorry。
假设第一位顾客从早上8点开始办理业务k个顾客编号依次为: 1、2…k。
输入格式
共3行
第一行4个由空格分隔的正整数分别表示n,m,k,q
第二行为k个由空格分隔的正整数分别表示每个人办理业务所需时间
第三行为q个由空格分隔的正整数分别表示每次查询时要查询的顾客编号
输出格式
共q行对应每次查询的结果每个结果的格式为: hh:mm
输入输出样例
输入样例1复制 2 2 7 5 1 2 6 4 3 534 2 3 4 5 6 7
输出样例1复制 08:07 08:06 08:10 17:00 sorry
说明
该银行共有两个窗口每个窗口可同时供2人排队总共有7人需要办理业务有5次询问分别是编号为3、4、5、6、7 的顾客结束时间输出结果显示编号为 3 的顾客在 08:07 分结束编号为 4 的顾客在 08:06 分结束编号为 5 的顾客在 08:10 分结束编号为 6 的顾客在 17:00 分结束编号为 7 的顾客在开始办理业务前银行就下班了所以输出 sorry。 数据范围:
1n10 1m5 1k, q100
补充说明只要顾客在下班前开始办理业务那就要将其办理完因此查询输出的结束时间有可能超过 17:00。
【耗时限制】1000ms 【内存限制】128MB
AC代码
#includebits/stdc.h
using namespace std;
int t[110],te[110];
queueintb[20];
int main(){int n,m,k,q,c0;cinnmkq;int end;for(int i1;imin(n*m,k);i){cint[i];c;if(cn){c1;}if(b[c].empty()){end8*60t[i];}else{endb[c].back()t[i];}b[c].push(end);te[i]end;}for(int in*m1;ik;i){cint[i];int minn0x3f3f3f3f,id;for(int j1;jn;j){if(b[j].front()minn){minnb[j].front();idj;}}endb[id].back()t[i];b[id].push(end);b[id].pop();te[i]end;}int x;while(q--){cinx;endte[x];if(end-t[x]17*60){coutsorry\n;}else{printf(%02d:%02d\n,end/60,end%60);}}return 0;
}