#include#include #include using namespace std; #include #include #include #include using namespace std; struct patient { int num; int high; }; vector doc1, doc2, doc3,doc4,doc5,doc6,doc7,doc8,doc9,doc10; bool cmp(patient a, patient b) { if (a.high != b.high) return a.high < b.high; if (a.num != b.num) return a.num > b.num; //这里必须是大于号 } int main() { int T, price, doct; int cnt; string s; while (cin >> T) { doc1.clear(); //初始化vector doc2.clear(); doc3.clear(); doc4.clear(); doc5.clear(); doc6.clear(); doc7.clear(); doc8.clear(); doc9.clear(); doc10.clear(); cnt = 1; while (T--) { cin >> s; if (s == "IN") { scanf("%d%d", &doct, &price); //存入病人的信息 if (doct == 1) doc1.push_back({ cnt++, price}); else if (doct == 2) doc2.push_back({ cnt++, price}); else if (doct == 4) doc4.push_back({ cnt++, price}); else if (doct == 5) doc5.push_back({ cnt++, price}); else if (doct == 6) doc6.push_back({ cnt++, price}); else if (doct == 7) doc7.push_back({ cnt++, price}); else if (doct == 8) doc8.push_back({ cnt++, price}); else if (doct == 9) doc9.push_back({ cnt++, price}); else if (doct == 10) doc10.push_back({ cnt++, price}); } else { scanf("%d", &doct); if (doct == 1) { if (!doc1.size()) //如果这个医生没病人,就输出EMPTY。下同 cout << "EMPTY" << endl; else //否则就排序,把优先级最高的输出、弹出 { sort(doc1.begin(), doc1.end(), cmp); cout << doc1[doc1.size() - 1].num << endl; doc1.pop_back(); } } else if (doct == 2) { if (!doc2.size()) cout << "EMPTY" << endl; else { sort(doc2.begin(), doc2.end(), cmp); cout << doc2[doc2.size() - 1].num << endl; doc2.pop_back(); } } else if (doct == 3) { if (!doc3.size()) cout << "EMPTY" << endl; else { sort(doc3.begin(), doc3.end(), cmp); cout << doc3[doc3.size() - 1].num << endl; doc3.pop_back(); } } else if (doct == 4) { if (!doc4.size()) cout << "EMPTY" << endl; else { sort(doc4.begin(), doc4.end(), cmp); cout << doc4[doc4.size() - 1].num << endl; doc4.pop_back(); } } else if (doct == 5) { if (!doc5.size()) cout << "EMPTY" << endl; else { sort(doc5.begin(), doc3.end(), cmp); cout << doc5[doc5.size() - 1].num << endl; doc5.pop_back(); } } else if (doct == 6) { if (!doc6.size()) cout << "EMPTY" << endl; else { sort(doc6.begin(), doc6.end(), cmp); cout << doc6[doc6.size() - 1].num << endl; doc6.pop_back(); } } else if (doct == 7) { if (!doc7.size()) cout << "EMPTY" << endl; else { sort(doc7.begin(), doc7.end(), cmp); cout << doc7[doc7.size() - 1].num << endl; doc7.pop_back(); } } else if (doct == 8) { if (!doc8.size()) cout << "EMPTY" << endl; else { sort(doc8.begin(), doc8.end(), cmp); cout << doc8[doc8.size() - 1].num << endl; doc8.pop_back(); } } else if (doct == 9) { if (!doc9.size()) cout << "EMPTY" << endl; else { sort(doc9.begin(), doc9.end(), cmp); cout << doc9[doc9.size() - 1].num << endl; doc9.pop_back(); } } else if (doct == 10) { if (!doc10.size()) cout << "EMPTY" << endl; else { sort(doc10.begin(), doc10.end(), cmp); cout << doc10[doc10.size() - 1].num << endl; doc10.pop_back(); } } } } } }



