水水
代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int n,m,g;
int s[15];
struct Node {
char num[30];
int a;
int score;
}e[1005];
bool cmp(Node x,Node y)
{
if(x.score != y.score)
return x.score > y.score;
else if(strcmp(x.num,y.num))
return strcmp(x.num,y.num) < 0;
}
int main()
{
while(~scanf("%d",&n),n)
{
memset(e,0,sizeof(e));
scanf("%d%d",&m,&g);
for(int i = 1;i <= m;++i)
scanf("%d",&s[i]);
int ans =0 ;
for(int i = 0;i < n;++i)
{
scanf("%s%d",e[i].num,&e[i].a);
for(int j = 0;j < e[i].a;++j)
{
int t;
scanf("%d",&t);
e[i].score += s[t];
}
if(e[i].score >= g)
ans++;
}
sort(e,e + n,cmp);
printf("%d\n",ans);
for(int i = 0;i < n;++i)
{
if(e[i].score >= g)
printf("%s %d\n",e[i].num,e[i].score);
else break;
}
}
}