sort的第三个参数的应用 实现自定义排序
#include<iostream>
#include<string>
#include<iomanip>
#include<algorithm>
using namespace std;
struct stu
{
string s;
int score;
};
bool rule(stu a, stu b)
{
if (a.score == b.score)
{
return (a.s < b.s);
}
else return a.score > b.score;
}
int main()
{
int sum;
while (cin >> sum&&sum)
{
int M;
int G;
cin >> M >> G;
int ques[15];
for (int i = 0; i < M; i++)
{
cin >> ques[i];
}
stu s[1005];
memset(s, 0, sizeof(s));
int num=0;
for (int i = 0; i < sum; i++)
{
cin >> s[i].s;
int pass;
cin >> pass;
for (int j = 0; j < pass; j++)
{
int a;
cin >> a;
s[i].score+= ques[a-1];
}
if (s[i].score >= G)num++;
}
sort(s, s + sum,rule);
cout << num << endl;
if (num)
{
for (int i = 0; i <num; i++)
{
cout << s[i].s << " " << s[i].score << endl;
}
}
}
// system("pause");
return 0;
}