排名 添加链接描述
#include <stdio.h>
#include <string.h>
typedef struct{
char number[21];
int slovem;
int sum;
}stu;
int main()
{
int n;
while (~scanf("%d", &n) && n){
int m, line, point[10];
int i, j, t, cont = 0;
stu s[n];
scanf("%d %d", &m, &line);
for (i = 0; i < m; i++)
scanf("%d", point+i);
for (i = 0; i < n; i++)
{
j = 0;
scanf("%s %d", s[i].number, &s[i].slovem);
s[i].sum = 0;
while (s[i].slovem--)
{
scanf("%d", &t);
s[i].sum += point[t-1];
}
if (s[i].sum >= line)
cont++;
}
stu temp;
for (i = 0; i < n -1; i++)
for (j = 0; j < n-1-i; j++)
{
if (s[j].sum < s[j+1].sum)
{
temp = s[j];
s[j] = s[j +1];
s[j+1] = temp;
}
if (s[j].sum == s[j+1].sum)
{
if(strcmp(s[j].number,s[j+1].number)>0){
temp = s[j];
s[j] = s[j +1];
s[j+1] = temp;
}
}
}
printf("%d\n", cont);
for (i = 0; i < cont; i++)
printf("%s %d\n", s[i].number, s[i].sum);
}
return 0;
}