Untitled
unknown
c_cpp
4 years ago
1.4 kB
5
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...