zoukankan      html  css  js  c++  java
  • 快速排序的题

    Problem Description

    今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 
    每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的 
    考生,并将他们的成绩按降序打印。 
     

    Input

    测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N 
    < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一 
    名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号 
    (题目号由1到M)。 
    当读入的考生人数为0时,输入结束,该场考试不予处理。 
     

    Output

    对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高 
    到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考 
    号的升序输出。 
     
     
     
     1 #include<stdio.h>  
    2 #include<string.h>
    3 struct acm
    4 {
    5 char nam[100];
    6 int s;
    7 }r[1000];
    8 int qsort(struct acm r[],int l,int h)
    9 {
    10 struct acm key;
    11 key = r[l];
    12
    13 while(l < h)
    14 {
    15 while(l < h&&r[h].s <= key.s)
    16 {
    17 if(r[h].s == key.s&&(strcmp(r[h].nam,key.nam)<0))
    18 break;
    19 h--;
    20 }
    21 r[l] = r[h];
    22
    23 while(l < h && r[l].s >= key.s)
    24 {
    25 if(r[l].s == key.s&&(strcmp(r[l].nam,key.nam)>0))
    26 break;
    27
    28 l++;
    29 }
    30 r[h] = r[l];
    31 }
    32
    33 r[l] = key;
    34 return l;
    35
    36 }
    37 void sort(struct acm r[],int l,int h)
    38 {
    39 int k;
    40 if(l < h)
    41 {
    42 k = qsort(r,l,h);
    43 sort(r,l,k-1);
    44 sort(r,k+1,h);
    45 }
    46 }
    47 int main()
    48 {
    49 struct acm r[1000];
    50 int n,d,k,j,i,m,score,pro[11];
    51 while(scanf("%d",&n)&&n)
    52 {
    53 scanf("%d%d",&m,&score);
    54 for(i=1;i <= m;i++)
    55 {
    56 scanf("%d",&pro[i]);
    57 }
    58 for(i = 0;i<n;i++)
    59 {
    60 scanf("%s",r[i].nam);
    61 scanf("%d",&k);
    62 r[i].s = 0;
    63 for(j=0;j<k;j++)
    64 {
    65 scanf("%d",&d);
    66 r[i].s+=pro[d];
    67 }
    68 }
    69 sort(r,0,n-1);
    70 k = 0;
    71 for(i=0;i<n;i++)
    72 {
    73 if(r[i].s>=score)
    74 k++;
    75 }
    76 printf("%d\n",k);
    77 for(i=0;i < k;i++)
    78 {
    79 printf("%s %d\n",r[i].nam,r[i].s);
    80 }
    81
    82 }
    83 return 0;
    84 }
  • 相关阅读:
    HDU3910(数学期望题,题目难懂)
    HDU2389(二分图匹配Hopcroft-Carp算法)
    二分图详解
    巴什博弈、威佐夫博弈、尼姆博弈
    HDU2819(二分图匹配,记录过程)
    查找外键未创建索引
    acl使用示例
    oracle数据库备份任务
    集中备份相关
    集中备份项目实施方案
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2364067.html
Copyright © 2011-2022 走看看