PAT (Basic Level) 1085 PAT单位排行

Netany ·
更新时间:2024-11-10
· 914 次阅读

题意

给定一些成绩,给单位做排行。

思路

转个小写,用用map,排排序,整整排名,谁不会呢?

代码 #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin >> n; map<string, pair> mp; for (int i = 0; i > id >> score >> sch; auto to_low = [](string s) { for (int i = 0; i < s.size(); ++i) if (s[i] <= 'Z') s[i] -= 'A' - 'a'; return s; }; sch = to_low(sch); mp[sch].second++; if (id[0] == 'B') mp[sch].first += score / 1.5; if (id[0] == 'A') mp[sch].first += score; if (id[0] == 'T') mp[sch].first += score * 1.5; } vector<tuple> ans; for (auto e : mp) ans.emplace_back((int)(-e.second.first), e.second.second, e.first); sort(ans.begin(), ans.end()); cout << ans.size() << '\n'; for (int i = 0, j = 0; i < ans.size(); i = j) { while (j < ans.size() && get(ans[j]) == get(ans[i])) ++j; for (int k = i; k < j; ++k) { cout << i + 1 << ' ' << get(ans[k]) << ' '; cout << -get(ans[k]) << ' '; cout << get(ans[k]) << '\n'; } } return 0; } HINT

不定时更新更多题解,Basic Level 全部AC代码,详见 link ! ! !


作者:xavier_cai



pat

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章