http://acm.hdu.edu.cn/showproblem.php?pid=1236
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
struct student
{
stringname;
intsum;
};
int cmp( const void *a , const void *b )
{
structstudent *c = (struct student *)a;
structstudent *d = (struct student *)b;
if(c->sum != d->sum)
return d->sum - c->sum;
else
{
if(c->name>d->name)return 1;
elseif(c->name<d->name)return -1;
else return 0;
}
}
int main()
{
intN,M,G;
intscor[11],score,num;
while(cin>>N,N)
{
struct student stu[N];
int peo=0;
cin>>M>>G;
for(int i=0;i<M;i++)
cin>>scor[i];
for(int i=0;i<N;i++)
{
stu[i].sum=0;
cin>>stu[i].name;
cin>>num;
for(int j=0;j<num;j++)
{
cin>>score;
stu[i].sum+=scor[score-1];
}
if(stu[i].sum>=G)
peo++;
}
cout<<peo<<endl;