| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436408 | 顾鑫辰 | 【C5-10】宇宙总统2 | C++ | 通过 | 100 | 3 MS | 264 KB | 1045 | 2026-04-14 16:45:31 |
#include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; // 存储候选人信息 struct Person { string name; // 名字 int cnt; // 票数 }; // 排序规则(核心!) // 1. 票数多的排前面 // 2. 票数相同,字典序大的排前面 bool cmp(const Person &a, const Person &b) { if (a.cnt != b.cnt) { return a.cnt > b.cnt; } else { return a.name > b.name; // 字典序大的在前 } } int main() { int n; cin >> n; // 用 map 统计每个人的票数 map<string, int> mp; // 输入并统计 for (int i = 0; i < n; i++) { string s; cin >> s; mp[s]++; } // 转成 vector 方便排序 vector<Person> v; for (auto &p : mp) { v.push_back({p.first, p.second}); } // 排序 sort(v.begin(), v.end(), cmp); // 输出 for (auto &x : v) { cout << x.name << " " << x.cnt << endl; } return 0; }