#include <stdio.h>
#include <string.h>
typedef struct stu{
char id[21];
int grade;
}stu;
int cmp(const void *a,const void *b)
{
if((*(stu *)b).grade!=(*(stu *)a).grade)
return (*(stu *)b).grade-(*(stu *)a).grade;
else
return (*(stu *)a).id[strlen((*(stu *)a).id)-1]-(*(stu *)b).id[strlen((*(stu *)b).id)-1];
}
int main()
{
int n,m,g,i,j,k,len,c;
while(scanf("%d%d%d",&n,&m,&g)!=EOF&&n!=0)
{
stu s[n];
int a[m];
for(i=0;i<m;i++)
scanf("%d",&a[i]);
for(i=0,c=0;i<n;i++)
{
s[i].grade=0;
scanf("%s %d",&s[i].id,&len);
for(j=0;j<len;j++)
{
scanf("%d",&k);
s[i].grade+=a[k-1];
}
if(s[i].grade>=g) c++;
}
qsort(s,n,sizeof(s[0]),cmp);
printf("%d\n",c);
for(i=0;i<c;i++)
printf("%s %d\n",s[i].id,s[i].grade);
}
return 0;
} c(语言实现•̀ᴗ•́)و

京公网安备 11010502036488号