hdoj1236

    技术2025-10-21  9

    #include <stdio.h>#include <stdlib.h>#include <string.h>

    struct student{ char name[21];  //!! int total; int pass;}students[1000];int problems[11];

    int main(){ struct student t; int n,m,g; int i,j,k; int sum,count,id,total; scanf("%d",&n); while( n != 0) {  scanf("%d %d",&m,&g);  for(i=1;i<=m;i++)  //!!  {   scanf("%d",&k);   problems[i] = k;  }  count = 0;  for(i=0;i<n;i++)  {   scanf("%s",students[i].name);   scanf("%d",&total);   sum = 0;   for(j=0;j<total;j++)   {    scanf("%d",&id);    sum += problems[id];   }   students[i].total = sum;      if(sum >= g)   {    count++;    students[i].pass = 1;   }   else     students[i].pass = 0;  }

      printf("%d/n",count);

      for(i=0;i<n-1;i++)   for(j=i+1;j<n;j++)   {    if(students[i].pass == 1)    {     if(students[i].total < students[j].total || (students[i].total == students[j].total && strcmp(students[i].name,students[j].name) > 0) )     {      t = students[i];      students[i] = students[j];      students[j] = t;     }    }   }

      for(i=0;i<n;i++)  {   if(students[i].pass == 1)    printf("%s %d/n",students[i].name,students[i].total);  }

      scanf("%d",&n); }

     return 0;}

    最新回复(0)