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 *c = (student *)a;
struct student *d = (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;
}
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 *c = (student *)a;
struct student *d = (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;
}