本文共 1533 字,大约阅读时间需要 5 分钟。
4 5 2510 10 12 13 15CS004 3 5 1 3CS003 5 2 4 1 3 5CS002 2 1 2CS001 3 2 3 51 2 4010 30CS001 1 22 3 2010 10 10CS000000000000000001 0CS000000000000000002 2 1 20
3CS003 60CS001 37CS004 3701CS000000000000000002 20
#include<stdio.h>
#include<string.h> typedef struct Node{ char num[24]; int score; }Node; int compare(const void *a,const void *b){ if((*(Node*)a).score!=(*(Node*)b).score){ return (*(Node*)b).score-(*(Node*)a).score; } else{ return strcmp((*(Node*)a).num,(*(Node*)b).num); } } int main(){ int n,m,g,s,t,sum,i,j,k; int score[11]; Node pass[1000],temp; while(scanf("%d",&n),n!=0){ scanf("%d%d",&m,&g); for(i=0;i<m;i++){ scanf("%d",&score[i+1]); } k=0; for(i=0;i<n;i++){ scanf("%s%d",&temp.num,&s); sum=0; for(j=0;j<s;j++){ scanf("%d",&t); sum+=score[t]; } if(sum>=g){ temp.score=sum; pass[k]=temp; k++; } } qsort(pass,k,sizeof(pass[0]),compare); printf("%d\n",k); for(i=0;i<k;i++){ printf("%s %d\n",pass[i].num,pass[i].score); } } return 0; }转载地址:http://xttpi.baihongyu.com/