PAT甲级1014
sample input
2 2 7 5 1 2 6 4 3 534 2 3 4 5 6 7
sample output
08:07 08:06 08:10 17:00 Sorry
通过代码
#include<iostream> #include<queue>//队列头文件 #include<cstdio> using namespace std; struct customer{ int process_time,leave_time=0; }; int N,M,K,Q;//N窗口,M每个窗口人数,K总人数,Q查询数 int main(){ customer c[1001]; int i,j,cursor=1; cin>>N>>M>>K>>Q; queue<int>q[20]; for(i=1;i<=K;i++){ cin>>c[i].process_time; } for(int Time=480;Time<1020;Time++){ for(i=0;i<N;i++){ if(q[i].size()){ j=q[i].front(); if(c[j].leave_time==Time){ q[i].pop(); } } } //送客 for(int j=1;j<=M;j++){//遍历排 for(i=0;i<N;i++){//遍历列 if(q[i].size()<j){ if(cursor<=K){ q[i].push(cursor); cursor++; } } } } //入队 for(i=0;i<N;i++){ if(q[i].size()){ j=q[i].front(); if(c[j].leave_time==0){ c[j].leave_time=Time+c[j].process_time; } } } //迎客 } while(Q--){ cin>>i; if(c[i].leave_time==0){ cout<<"Sorry\n"; } else{ printf("%02d:%02d\n",c[i].leave_time/60,c[i].leave_time%60); } } return 0; }