http://acm.hdu.edu.cn/showproblem.php?pid=1236

学会怎样按字典序排序的模板。

排名

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14043    Accepted Submission(s): 5172

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空格分隔。若有多名考生分数相同,则按他们考 号的升序输出。
 
Sample Input
4 5 25
10 10 12 13 15
CS004 3 5 1 3
CS003 5 2 4 1 3 5
CS002 2 1 2
CS001 3 2 3 5
1 2 40
10 30
CS001 1 2
2 3 20
10 10 10
CS000000000000000001 0
CS000000000000000002 2 1 2
0
 
Sample Output
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20
#include<iostream>
#include<algorithm>
using namespace std;
struct fengshu
{ char str[50];
int percent; }xue[3001];
bool cmp(fengshu a,fengshu b)
{ if(a.percent == b.percent)
return strcmp(a.str, b.str) < 0 ? 1 : 0; //按字典序升序
else
return a.percent > b.percent;
}
int main()
{
int n,m,g,i,j,t,ans;
int ti[20],shu[20],sum;
while(scanf("%d",&n)&&n)
{
ans=0;
cin>>m>>g;
if(n==0)
break;
for(i=0;i<m;i++)
cin>>ti[i];
for(i=0;i<n;i++)
{
sum=0;
scanf("%s",xue[i].str);
scanf("%d",&t);
for(j=0;j<t;j++)
{
scanf("%d",&shu[j]);
sum+=ti[shu[j]-1];
}
xue[i].percent=sum;
}
sort(xue, xue+ n, cmp);
for(i=0;i<n;i++)
{
if(xue[i].percent>=g)
ans++;
}
cout<<ans<<endl;
for(i=0;i<n;i++)
{
if(xue[i].percent>=g)
printf("%s %d\n",xue[i].str,xue[i].percent); } }
return 0;
}
 

HDU-1236 排名的更多相关文章

  1. HDU 1236 排名(Microsoft_zzt)

    http://acm.hdu.edu.cn/showproblem.php?pid=1236 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完 ...

  2. 题解报告:hdu 1236 排名

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1236 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名 ...

  3. HDU 1236 排名(结构体+排序)

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

  4. hdu 1236 排名(排序)

    题意:按成绩排序 思路:排序 #include<iostream> #include<stdio.h> #include<string.h> #include< ...

  5. hdu 1236 1.3.2排名

    排名 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  6. HDOJ 1236 排名(练耐心题)

    Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通 ...

  7. HDU 1236

    水题~~但我做了很久: 题意:是中国人都懂了 思路:结构体排序: 以后要多用用重定义的排序手段,!!!!!多用!!多用!!多用!! #include<iostream> #include& ...

  8. 题解 HDU 3698 Let the light guide us Dp + 线段树优化

    http://acm.hdu.edu.cn/showproblem.php?pid=3698 Let the light guide us Time Limit: 5000/2000 MS (Java ...

  9. 1236 hdu排名

    Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通 ...

  10. HDU 1285 确定比赛排名 (数组实现 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    ...

随机推荐

  1. .NET(C#):获取进程的内存私有工作集

    当前.NET Framework(.NET 4.0)的Process仅提供进程的内存工作集的获取(通过WorkingSet64属性),而没有提供对私有工作集的获取.注意在Windows Vista之后 ...

  2. JavaEE web.xml 中ContextLoaderListener的解析

    ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在 ...

  3. #define和#undefine的用法

    #undef将保持已定义状态且在 作用域内,直到程序结束或者使用#undef 指令取消定义. 预处理器 在此程序中,我们将取消在先前程序中对预处理器的定义. 1 2 3 4 5 6 7 8 9 10 ...

  4. C语言运算符与表达式

    1 概论 计算机内存中的数据可以通过变量,常量来表示和存储,那么这些数据如何运算? C语言中提供了大量(34种)的运算符可以用来完成数据的算术,赋值,逻辑,关系,条件判断以及自增自减运算和基于二进制的 ...

  5. 实现基于文件存储的Session类

    自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的. 一般基于文件存储Session数据效率不是很高 ...

  6. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法

    一个主键.两个外键,把两个外键改为非空就行了. CREATE TABLE [dbo].[User_Compare]( ,) NOT NULL, [UserId] [int] NOT NULL, [Pa ...

  7. 把AS代码链接到fla文件

    在属性里找到类,输入AS脚本的文件名然后点击右边的编辑就可以打开编辑AS脚本的界面,下面为链接代码. package { import flash.display.MovieClip; public ...

  8. Linux进程和进程边界

    1. 进程和线程 2. 手机操作系统的发展 3. 进程的地址空间边界 4. 进程边界的安全围栏: Crash的不可扩延性 5. 进程边界的安全围栏: 全局数据和服务的不可访问性 http://www. ...

  9. linux下VI编辑器的使用

    一.VI编辑器简述       VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,使它成了效率很高的文本编辑器.尽管在Linux上也有很多图形界面的编辑器可 ...

  10. MVC5 学习笔记1

    新装了vs2013 开始试着学习MVC5 首先用了2013的内置的框架 这里提三点 1. bootstrap (现已加入mvc5豪华套餐) 他的框架已经加入了bootstrap 3.0的版本(http ...