自定义排序,大水题
#include<iostream>
#include<algorithm>
using namespace std;
struct stu
{
string name;
int score;
};
bool cmp(stu x,stu y)
{
if(x.score==y.score) return x.name<y.name;
return x.score>y.score;
}
int main()
{
int n,m,g;
while(cin>>n&&n)
{
cin>>m;
cin>>g;
int s[m+1];
for(int i=1;i<=m;i++)
{
cin>>s[i];
}
stu pe[n];
int sum=0;
for(int i=0;i<n;i++)
{
int x,num;
cin>>pe[i].name;
cin>>x;pe[i].score=0;
while(x--)
{
cin>>num;
pe[i].score+=s[num];
}
if(pe[i].score>=g) sum++;
}
sort(pe,pe+n,cmp);
cout<<sum<<endl;
for(int i=0;i<sum;i++)
{
cout<<pe[i].name<<' '<<pe[i].score<<endl;
}
}
return 0;
}