2961 unordered_map<string, school> schools;
2962 for(
int i = 0; i < n; i++) {
2966 cin >>
id >> score >> sc;
2969 ss << static_cast<char>(tolower(ch));
2972 if(!schools.contains(sc)) {
2973 schools[sc] = school(sc);
2975 schools[sc].count++;
2978 schools[sc].a_sum += score;
2981 schools[sc].b_sum += score;
2984 schools[sc].t_sum += score;
2990 vec.reserve(schools.size());
2991 for(
const auto &[
id, sc]: schools) {
2994 sort(
vec.rbegin(),
vec.rend());
2995 unordered_map<int, int> score_rank;
2996 for(
int i =
vec.size() - 1; i >= 0; i--) {
2997 score_rank[
vec[i].get_score()] = i + 1;
2999 cout <<
vec.size() << endl;
3000 for(
int i = 0; i <
vec.size(); i++) {
3001 const auto &sc =
vec[i];
3002 cout << score_rank[sc.get_score()] <<
' ' << sc.id <<
' ' << sc.get_score() <<
' ' << sc.count << endl;