| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 81223 | sh25_zhangyy | 病人排队 | C++ | 通过 | 1 MS | 248 KB | 1026 | 2026-01-04 15:42:20 |
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; struct Patient { string id; int age; int register_order; }; bool compare(const Patient& a, const Patient& b) { bool a_is_senior = a.age >= 60; bool b_is_senior = b.age >= 60; if (a_is_senior && !b_is_senior) return true; if (!a_is_senior && b_is_senior) return false; if (a_is_senior && b_is_senior) { if (a.age != b.age) return a.age > b.age; return a.register_order < b.register_order; } return a.register_order < b.register_order; } int main() { int n; cin >> n; vector<Patient> patients(n); for (int i = 0; i < n; ++i) { cin >> patients[i].id >> patients[i].age; patients[i].register_order = i; } sort(patients.begin(), patients.end(), compare); for (const auto& patient : patients) { cout << patient.id << endl; } return 0; }