PAT-1014 Waiting in Line (30)

题目大意:本题需要进行深度的审题,关于怎么排队就不再赘述了。本题的坑点在于 当某人于17:00之前(不包含17:00)已经在办理业务,那么这个人的时间也得算 ,还在排队的回家 (举个例子:如果某人在17:00之前已经在办业务了,那么他的业务如果还有 7 个小时,出纳员也得陪他到半夜。)

解题思路:模拟题。用队列模拟各柜台的排队状况,用一个循环代表时间的流逝,具体细节看代码。

题目链接:https://www.patest.cn/contests/pat-a-practise/1014

#include       
#include       
#include       
#include       
#include       
#include       
#include       
#include       
using namespace std;

const int INF = 1<<30;
//窗口模拟排队的队列数组 
queue que[21];
//用户信息 
typedef struct Client
{
  int time,num,NeedT;
}Client;
Client client[1005];

int PreComeNum;//黄线外第一人 
int n,m,k,q;

//初始黄线里的排好队 
void ready()
{
  for(int i=1;i<=n;++i)
  {
    for(int j=0;j k)
        break;
      for(int i=1;i<=n;++i)
      {
        min = (min> n >> m >> k >> q;
  for(int i=1;i<=k;++i)
    cin >> client[i].NeedT;
  cal();
  for(int i=0;i> num;
    if(client[num].time == -1)
    {
      cout << "Sorry" << endl; 
      continue;
    }
    int h = client[num].time/60;
    int m = client[num].time%60;
    printf("%02d:%02d\n",h+8,m);
  }
  return 0;
}

你可能感兴趣的:(PAT)