Problem Description
“Point, point, life of student!”
This is a ballad(歌谣)well
known in colleges, and you must care about your score in this exam too.
How many points can you get? Now, I told you the rules which are used in
this course.
There are 5 problems in this final exam. And I will
give you 100 points if you can solve all 5 problems; of course, it is
fairly difficulty for many of you. If you can solve 4 problems, you can
also get a high score 95 or 90 (you can get the former(前者) only when
your rank is in the first half of all students who solve 4 problems).
Analogically(以此类推), you can get 85、80、75、70、65、60. But you will not pass
this exam if you solve nothing problem, and I will mark your score with
50.
Note, only 1 student will get the score 95 when 3 students have solved 4 problems.
I wish you all can pass the exam!
Come on!
 

Input
Input contains multiple test cases. Each test case contains an
integer N (1<=N<=100, the number of students) in a line first, and
then N lines follow. Each line contains P (0<=P<=5 number of
problems that have been solved) and T(consumed time). You can assume
that all data are different when 0<p.
A test case starting with a negative integer terminates the input and this test case should not to be processed.
 

Output
Output the scores of N students in N lines for each case, and there is a blank line after each case.
 

Sample Input
4
5 06:30:17
4 07:31:27
4 08:12:12
4 05:23:13
1
5 06:30:17
-1
 

Sample Output
100
90
90
95 100

这个题可以说是基数排序的一个简单版,但是我写了将近俩个小时才写出来,实在是水啊。。

#include<stdio.h>
#include<string.h>
void Exchange(int f[100],int n,int m)
{
    int temp;
    temp=f[n];
    f[n]=f[m];
    f[m]=temp;
}
void Sort(int f[100],char time[100][10],int k)
{
    for(int i=0;i<k;i++)
    {
        int p=k-1;
        for(int j=k-1;j>i;j--)
        {
            if(strcmp(time[f[j]],time[f[j-1]])<0)
            {
                Exchange(f,j,j-1);
                p=j;
            }
        }
        if(p==k-1) break;
    }
}
void Score(int score[100],char time[100][10],int solved[100],int n)
{
    int f[100];
    for(int i=1;i<5;i++)
    {
        int k=0;
        for(int j=0;j<n;j++)
        {
            if(solved[j]==i)
            {
                f[k]=j;
                k++;
            }
        }
        Sort(f,time,k);         //对时间进行排序
        for(j=0;j<k/2;j++)
            score[f[j]]=5;
    }
}

void main()
{
    int n;
    char time[100][10];
    int solved[100];
    int score[100];
    while(1)
    {
        scanf("%d",&n);
        if(n<0) return;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&solved[i]);
            scanf("%s",time[i]);
            score[i]=0;
        }
        Score(score,time,solved,n);
        for(i=0;i<n;i++)
        {
            switch (solved[i])
            {
                 case 5 : printf("100\n"); break;
                 case 4 : printf("%d\n",90+score[i]); break;
                 case 3 : printf("%d\n",80+score[i]); break;
                 case 2 : printf("%d\n",70+score[i]); break;
                 case 1 : printf("%d\n",60+score[i]); break;
                 default : printf("50\n");
            }
        }
        printf("\n");
    }
}

What Is Your Grade?的更多相关文章

  1. kaungbin_DP S (POJ 3666) Making the Grade

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  2. POJ 3666 Making the Grade

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  3. CF719C. Efim and Strange Grade[DP]

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  4. POJ3666Making the Grade[DP 离散化 LIS相关]

    Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6445   Accepted: 2994 ...

  5. [CareerCup] 15.7 Student Grade 学生成绩

    15.7 Imagine a simple database storing information for students' grades. Design what this database m ...

  6. 英语语法 It all started the summer before second grade when our moving van pulled into her neighborhood

    It all started the summer before second grade when our moving van pulled into herneighborhood It all ...

  7. FPGA speed grade

    Altera的-6.-7.-8速度等级逆向排序,Xilinx速度等级正向排序. 不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法, “序号越高,速度等级也越高”这是Xili ...

  8. HDU 5038 Grade(分级)

    Description 题目描述 Ted is a employee of Always Cook Mushroom (ACM). His boss Matt gives him a pack of ...

  9. hdu---(5038)Grade(胡搞)

    Grade Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Sub ...

  10. A-Making the Grade(POJ 3666)

    Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4656   Accepted: 2206 ...

随机推荐

  1. vcf格式简介

    1)背景 伴随着大规模的基因分型及测序工程的产生(例如1000 Genomes Project),之前的信息贮存格式例如gff文件它记录了每一个基因的详细信息,其中许多基因信息在基因组之间是共享的,而 ...

  2. 无插件,无com组件,利用EXCEL、WORD模板做数据导出(一)

    本次随笔主要讲述着工作中是如何解决数据导出的,对于数据导出到excel在日常工作中大家还是比较常用的,那导出到word呢,改如何处理呢,简单的页面导出问题应该不大,但是如果是标准的公文导出呢,要保证其 ...

  3. Alberta family's QR code is world's largest corn maze

    BY DARREN WEIR     SEP 10, 2012 IN ODD NEWS Link:http://www.digitaljournal.com/article/332512   Laco ...

  4. 网络基础相关的知识 socket模块

    1.架构 1.C/S架构:client客户端和server服务器端 优势:能充分发挥pc机的性能 2.B/S架构:browser浏览器和server服务器    隶属于C/S架构 B/S架构  统一了 ...

  5. mongo通信协议

    先是一个包头: struct MsgHeader { int32 messageLength; // total message size, including this int32 requestI ...

  6. 【Python基础教程第2版】——第二讲:列表和元组

    引言: 什么是数据结构? 数据结果是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合.Python中最常用的数据结构是序列. Python包含6种内建的序列:列表和元组(最常用:列表可以修 ...

  7. Swift 基本语法03-"if let"和"guard let"

    1. /// 如果JY_WINDOW有rootViewController, 并且rootViewController类型是AdvertisementViewController,就执行stopPla ...

  8. mysql自定义函数收集

    代码: 查找字符串 in_string 中,存在多少个字符串 in_find_str delimiter $$ DROP FUNCTION IF EXISTS `fn_findCharCount` $ ...

  9. Sql自定义表类型批量导入数据

    -- 创建自定义表类型 CREATE TYPE [dbo].[App_ProductTable] AS TABLE( [p_name] [varchar](50) NOT NULL, [p_audio ...

  10. mysql索引提高查询速度

    使用索引提高查询速度 1.前言 在web开发中,业务模版,业务逻辑(包括缓存.连接池)和数据库这三个部分,数据库在其中负责执行SQL查询并返回查询结果,是影响网站速度最重要的性能瓶颈.本文主要针对My ...