解题排行榜中,按解题总数生成排行榜。假设每个学生信息仅包括学号、解题总数;要求先输入n个学生的信息;然后按“解题总数”降序排列,若“解题总数”相同则按“学号”升序排列。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试数据先输入1个正整数n(1 ≤ n ≤ 100),表示学生总数。然后输入n行,每行包括1个不含空格的字符串s(不超过8位)和1个正整数d,分别表示一个学生的学号和解题总数。
输出格式:
对于每组测试数据,输出最终排名信息,每行一个学生的信息:排名、学号、解题总数。每行数据之间留一个空格。注意,解题总数相同的学生其排名也相同。
#include
#include
using namespace std;
struct stu{
string s,d;
int sno;
};
bool cmp(stu a,stu b){
if(a.d>b.d){
return a.d>b.d;
}else if(a.d==b.d&&a.s>b.s){
return b.s>a.s;
}
}
int main(){
int T;
cin>>T;
while(T--){
int n;
cin>>n;
stu s[n];
for(int i=0;i>s[i].s>>s[i].d;
}
sort(s,s+n,cmp);
// int r=1;
for(int i=0;i" "<" "<return 0;
}
sno变量也要cin进来的