Run ID:129475
提交时间:2025-08-26 14:42:37
#include<bits/stdc++.h> using namespace std; struct cj { string name; int mark; }; bool Pd(string a, string b) { int lena = a.size(); int lenb = b.size(); int min; if(lena > lenb) { min = lenb; } else { min = lena; } for(int i = 0; i < min; i++) { if(a[i] == b[i]) { continue; } else if(a[i] > b[i]) { return false; } else { return true; } } } int main() { int n; cin >> n; cj stu[n]; for(int i = 0; i < n; i++) { cin >> stu[i].name >> stu[i].mark; } for(int i = 0; i < n - 1; i++) { for(int j = 0; j < n - 1 - i; j++) { if(stu[j].mark < stu[j + 1].mark) { swap(stu[j].name, stu[j + 1].name); swap(stu[j].mark, stu[j + 1].mark); } else if(!Pd(stu[j].name, stu[j + 1].name) && stu[j].mark == stu[j + 1].mark) { swap(stu[j].name, stu[j + 1].name); swap(stu[j].mark, stu[j + 1].mark); } else { continue; } } } for(int i = 0; i < n; i++) { cout << stu[i].name << " " << stu[i].mark << endl; } return 0; }