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. JSP页面实现自动跳转

    1 <html><head><script language=javascript> function out(obj) {  var i = obj;  if ( ...

  2. Tomcat数据库连接池配置

    Tomcat数据库连接池配置 1.            Server.xml的配置 (1)找到tomcat所在目录下的conf\server.xml文件 (2)在文件最后一个</host> ...

  3. KKT条件的物理意义(转)

    最好的解释:https://www.quora.com/What-is-an-intuitive-explanation-of-the-KKT-conditions# 作者:卢健龙链接:https:/ ...

  4. 逻辑斯蒂回归VS决策树VS随机森林

    LR 与SVM 不同 1.logistic regression适合需要得到一个分类概率的场景,SVM则没有分类概率 2.LR其实同样可以使用kernel,但是LR没有support vector在计 ...

  5. Managing Images on smartos

    SmartOS依赖images.images是包含在创建新zone或虚拟机时使用的磁盘或文件系统映像和元数据的模板. images使用imgadm工具进行管理. 使用此工具,您可以: 查看和下载在公共 ...

  6. Web标准:七、横向导航菜单

    Web标准:七.横向导航菜单 知识点: 1.横向列表菜单 2.用图片美化的横向导航 3.css Sprites   1)横向列表菜单 可以在第四节课的基础上来实现横向导航菜单,只要给li一个float ...

  7. 解决selenium不支持firefox低版本的问题

    解决selenium不支持firefox低版本的问题 在火狐浏览器升级后,突然发现webdriver运行脚本的时候不能调出火狐浏览器了,并报错WebDriverException:Message:'C ...

  8. ThreadPoolExecutor的execute源码分析

    上一篇文章指出,ThreadPoolExecutor执行的步骤如下: 向线程池中添加任务,当任务数量少于corePoolSize时,会自动创建thead来处理这些任务: 当添加任务数大于corePoo ...

  9. tf.random_normal()

    tf.random_normal()函数用于从服从指定正太分布的数值中取出指定个数的值. tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf. ...

  10. Codeforces Beta Round#2

    Codeforces Beta Round#2 http://codeforces.com/contest/2 A 模拟题 #include<bits/stdc++.h> using na ...