解题思路:
1、普通客户到来:从编号最小的窗口开始查看是否有空闲窗口
1)如果有空闲窗口,若此时空闲窗口刚好是VIP窗口,则看一下队列里面是否有已经到来的VIP客户,如有,则让该VIP插队
2)如果没有空闲窗口,则寻找最先完成的窗口,若最先完成的窗口也是VIP,同理也要看一下队列里是否有VIP已经到来,如有,则让VIP插队
2、VIP客户到来:首先查看VIP窗口是否空闲,如空闲,则直接办理,若不空闲,则寻找最快完成窗口(这里要注意的是:VIP窗口的优先级排在普通窗口之前)
#include
#include
typedef struct {
int t,p,flag;
} Queue;
Queue Q[1010];
void ChkVip(int start,int end,int sum) {
int i,pos;
for(i=start; i
if(Q[i].flag==1&&Q[i].t
pos=i;
break;
}
}
if(i
Queue tmp=Q[pos];
for(i=