http://acm.hdu.edu.cn/showproblem.php?pid=1236

今天集训队个人赛发挥很不好,被虐了,特来杭电的OJ上虐几道水题,本题没啥说的,qsort一下~~

 

#include<iostream>
using namespace std;
int arr[11];
struct student
{
    
char name[21];
    
int t[11];
    
int num;
    
int sum;
}
;
int cmp( const void *a , const void *b ) 

    
struct student *= (student *)a; 
    
struct student *= (student *)b; 
    
if(c->sum != d->sum) return d->sum - c->sum; 
    
else return strcmp(c->name,d->name); 
}
 

int main()
{
    
int n,m,g;
    
int i,j;
    student stu[
1010];
    
int temp,index;
    
while(scanf("%d %d %d",&n,&m,&g)!=EOF&&n!=0)
    
{
        index
=0;
        
for(i=0;i<m;i++)
        
{
            scanf(
"%d",&arr[i]);
        }

        
for(i=0;i<n;i++)
        
{
            scanf(
"%s %d",&stu[i].name,&stu[i].num);
            temp
=0;
            
for(j=0;j<stu[i].num;j++)
            
{
                scanf(
"%d",&stu[i].t[j]);
                temp
+=arr[stu[i].t[j]-1];
            }

            stu[i].sum
=temp;
            
if(temp>=g)index++;
        }

        qsort(stu,n,
sizeof(stu[0]),cmp);
        printf(
"%d\n",index);
        
if(index!=0)
        
{
            
for(i=0;i<n;i++)
            
{
                
if(stu[i].sum>=g)
                    printf(
"%s %d\n",stu[i].name,stu[i].sum);
            }

        }

    }

    
return 0;
}
posted on 2008-07-24 21:11  俺是打铁的  阅读(156)  评论(0编辑  收藏  举报