Untitled
unknown
c_cpp
4 years ago
1.4 kB
11
Indexable
void next(Queue *Q) {
enQueue(front(*Q), Q);
deQueue(Q);
}
void update(ElementType x, Queue *Q) {
Q->Elements[Q->Front] = x;
}
int avgWaitingTime(int cusQty, int ctrQty, int transTime, int comeTime) {
int i;
int totalTime = 0;
Queue cusQ, ctrQ;
makenullQueue(&cusQ);
makenullQueue(&ctrQ);
for (i = 1; i <= cusQty;i++)
enQueue(i * comeTime, &cusQ);
for (i = 1; i <= ctrQty; i++)
enQueue(0, &ctrQ);
while(!emptyQueue(cusQ)) {
if(front(ctrQ) == 0)
update(front(cusQ), &ctrQ);
update(front(ctrQ) + transTime, &ctrQ);
totalTime += front(ctrQ) - front(cusQ);
next(&ctrQ);
deQueue(&cusQ);
}
return totalTime / cusQty;
}
int main()
{
int cusQty, maxCtrQty, transTime, comeTime, X;
scanf("%d%d%d%d%d", &cusQty, &maxCtrQty, &transTime, &comeTime, &X);
int avgTime;
int ctrQty = 0;
do {
ctrQty++;
avgTime = avgWaitingTime(cusQty, ctrQty, transTime, comeTime);
printf("So quay: %d; Thoi gian cho trung binh: %d.0\n", ctrQty, avgTime);
} while (avgTime > X && ctrQty < maxCtrQty);
if(avgTime>X)
printf("Voi %d quay hien co, khach phai cho it nhat %d.0 giay moi duoc phuc vu.", maxCtrQty, avgTime);
else
printf("=> Sieu thi se mo %d quay", ctrQty);
return 0;
}Editor is loading...