題目描述
看病要排隊這個是地球人都知道的常識。
不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生(汗,這麼少)同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為1的優先權最低。醫生在看病時,則會在他的隊伍裡面選擇乙個優先權最高的人進行診治。如果遇到兩個優先權一樣的病人的話,則選擇最早來排隊的病人。
現在就請你幫助醫院模擬這個看病過程。
輸入
輸入資料報含多組測試,請處理到檔案結束。
每組資料第一行有乙個正整數n(0知識點:優先佇列
說一下這題有個坑點是我網上查過的,需要穩定排序,意思是優先權相同的不變動。
思路:因為這裡有個優先權,所有優先佇列很好用,用結構體儲存每個病人的編號(id),要看幾號醫生(doc),還有優先權§,然後模擬流程,獲取到字串是in的話輸入 醫生和優先權,然後給個編號,因為這裡有3個醫生,所以我用了3個佇列,不是in就輸出,輸出首先判斷佇列是不是空的,空的輸出empty,不空輸出編號。
**:
#include
#include
#include
#include
#include
using
namespace std;
struct nodenode[
10010];
struct cmp};
priority_queue
,cmp> q,q1,q2;
intmain()
while
(!q1.
empty()
)while
(!q2.
empty()
)int cnt =1;
for(
int i =
0; i < n; i++
)else
node node1 = q.
top();
cout
pop();
}else
if(num==2)
node node1 = q1.
top();
cout
pop();
}else
if(num==3)
node node1 = q2.
top();
cout
pop();
}}}}
return0;
}
D 看病要排隊
看病要排隊這個是地球人都知道的常識。不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生 汗,這麼少 同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為1的優先權最低。...
D 看病要排隊
看病要排隊這個是地球人都知道的常識。不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生 汗,這麼少 同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為1的優先權最低。...
D 看病要排隊
d 看病要排隊 看病要排隊這個是地球人都知道的常識。不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生 汗,這麼少 同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為...