#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
const int maxn=1010;
struct window{
int endtime;
int poptime;
queue<int> q;
}Window[21];
int ans[maxn];
int needtime[maxn];
int N,M,K,Q;
int index=0;
int main(void){
scanf("%d%d%d%d",&N,&M,&K,&Q);
for(int i=0;i<K;i++){
scanf("%d",&needtime[i]);
}
for(int i=0;i<N;i++) Window[i].endtime=Window[i].poptime=0;
for(;index<min(N*M,K);index++){
int id=index%N;
Window[id].q.push(index);
if(index<N) Window[id].poptime=needtime[index];
Window[id].endtime+=needtime[index];
ans[index]=Window[id].endtime;
}
for(;index<K;index++){
int id,min=10000000;
for(int i=0;i<N;i++){
if(min>Window[i].poptime){
id=i;
min=Window[i].poptime;
}
}
Window[id].q.pop();
Window[id].q.push(index);
Window[id].endtime+=needtime[index];
Window[id].poptime=ans[Window[id].q.front()];
ans[index]=Window[id].endtime;
}
for(int i=0;i<Q;i++){
int q;
scanf("%d",&q);
if(ans[q-1]-needtime[q-1]>=540){
printf("Sorry\n");
}else
printf("%02d:%02d\n",ans[q-1]/60+8,ans[q-1]%60);
}
return 0;
}
1014 Waiting in Line 简单队列模拟题
最新推荐文章于 2022-03-19 14:32:07 发布