给定一些成绩,给单位做排行。
思路转个小写,用用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 ! ! !