Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
129475 | 常钰杰 | 成绩排序 | C++ | Accepted | 2 MS | 280 KB | 1438 | 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; }