1014. Waiting in Line (30)

来源:互联网 发布:java代码实现单例模式 编辑:程序博客网 时间:2024/04/30 04:47
#include<iostream>#include<iomanip>#include<queue>#define MAXTIME 540#define INF 1000using namespace std;void time_change(int i){    if(i==INF)        cout<<"Sorry"<<endl;    else        cout<<setw(2)<<setfill('0')<<8+i/60<<":"<<setw(2)<<setfill('0')<<i%60<<endl;}int main(){    int N,M,K,Q,x=1;    queue<int> q[22];    int T[1001];    int time[1001];    cin>>N>>M>>K>>Q;    for(int t=1;t<=K;t++)   {cin>>T[t];time[t]=INF;}    for(int t=0;t<M;t++)    {        for(int i=0;i<N;i++)            if(x<=K) q[i].push(x++);    }    for(int t=1;t<=539;t++)    {        for(int i=0;i<N;i++)        {             if(!q[i].empty() &&--T[q[i].front()]==0)            {                time[q[i].front()]=t;                if(q[i].size()>=2) q[i].pop();                if(x<=K)                {                    q[i].push(x++);                }            }            if(t==539 && T[q[i].front()]>0)             time[q[i].front()]=t+T[q[i].front()];        }    }    for(int t=1;t<=Q;t++)    {        cin>>x;        time_change(time[x]);    }}
0 0