九度OJ 1014:排名 (排序)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:8267
解决:2469
- 题目描述:
-
今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。
- 输入:
-
测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号(题目号由1到M)。
当读入的考生人数为0时,输入结束,该场考试不予处理。
- 输出:
-
对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考号的升序输出。
- 样例输入:
-
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
- 样例输出:
-
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20
思路:
仍然是基本的排序题,用结构体来表示每个记录,然后用快排进行排序。
有一个问题是cin和cout的时间要大于scanf和printf,有时候需要注意。
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h> #define N 1000
#define M 10
#define LEN 50 struct record {
char num[LEN+1];
int score;
}; int cmp(const void *a, const void *b)
{
struct record *c = (struct record *)a;
struct record *d = (struct record *)b;
if (c->score != d->score)
return d->score - c->score;
else
return strcmp(c->num, d->num);
} int main(void)
{
int n, m, g;
int i, j;
struct record rec[N];
int rank[M];
while (scanf("%d", &n) != EOF && n)
{
scanf("%d%d", &m, &g);
for (i=0; i<m; i++)
scanf("%d", &rank[i]);
for (i=0; i<n; i++)
{
int tmpm;
scanf("%s%d", rec[i].num, &tmpm);
rec[i].score = 0;
int tmppass;
for (j=0; j<tmpm; j++)
{
scanf("%d", &tmppass);
rec[i].score += rank[tmppass-1];
}
}
qsort(rec, n, sizeof(rec[0]), cmp);
j = 0;
for (i=0; i<n; i++)
{
if (rec[i].score >= g)
j++;
}
printf("%d\n", j);
for (i=0; i<j; i++)
printf("%s %d\n", rec[i].num, rec[i].score);
} return 0;
}
九度OJ 1014:排名 (排序)的更多相关文章
- 九度OJ 1014 排名
#include <iostream> #include <string.h> #include <sstream> #include <math.h> ...
- 九度OJ 1066 字符串排序
题目地址:http://ac.jobdu.com/problem.php?pid=1066 题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出 ...
- 九度OJ 1202:排序 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:19711 解决:6508 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=100). ...
- 【九度OJ】题目1023:EXCEL排序 解题报告
[九度OJ]题目1023:EXCEL排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1023 题目描述: E ...
- 【九度OJ】题目1185:特殊排序 解题报告
[九度OJ]题目1185:特殊排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1185 题目描述: 输入一系 ...
- 【九度OJ】题目1061:成绩排序 解题报告
[九度OJ]题目1061:成绩排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1061 题目描述: 有N个学 ...
- 【九度OJ】题目1202:排序 解题报告
[九度OJ]题目1202:排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1202 题目描述: 对输入的n个 ...
- 【九度OJ】题目1190:大整数排序 解题报告
[九度OJ]题目1190:大整数排序 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1190 题目描述: 对N个长度最长可达 ...
- 【九度OJ】题目1196:成绩排序 解题报告
[九度OJ]题目1196:成绩排序 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1196 题目描述: 用一维数组存储学号和成绩,然后 ...
随机推荐
- CentOS 7 配置阿里云yum源
Test at Red Hat Enterprise Linux Server release 7.5 (Maipo) File localtion /etc/yum.repos.d/epel.rep ...
- [UR #3] 核聚变反应强度
次大公约数就是gcd再除以其最小质因子(如果有的话).可以发现要求的sgcd 的前身gcd都是a1的约数,所以把a1质因数分解直接做就行了. #include<bits/stdc++.h> ...
- gitlab gitlab runner
1.安装gitlab https://about.gitlab.com/installation/#ubuntu 2.安装runner https://docs.gitlab.com/runner/i ...
- mysqldump实践
mysqldump mysqldump---逻辑备份,热备 单线程,适合数据量小的库 mysql官方自带的命令行工具 #全库 )mysqldump -uroot -p123456 --sock ...
- pt-query-digest 实践(转)
mysql slowlog 使用与介绍 slow_query_log =1-----是否打开 slow_query_log_file = /data/mysql_data/node-1/mysql-s ...
- 判断vps类型
- tomcat部署不成功 Deployment failure on Tomcat 6.x. Could not copy all resources to
解决办法: tomcat服务并没有启动.上网搜索之后发现和大家犯的是一个毛病,原来工程中我引了一个包,后来这个包被我给删除了,但是因为已经发布过这个工程了,所以classpath中就有这个包名了,这样 ...
- 2016.8.19 在dialog上增加一个button出现错误:failed to execute setAttribute on Element...
目标:想要在dialog上多加一个button. 语法来自: http://api.jqueryui.com/dialog/#option-buttons 可见新增在dialog上的button要 ...
- 【dubbo】服务提供者运行的三种方式
[dubbo]服务提供者运行的三种方式 学习了:https://blog.csdn.net/yxwb1253587469/article/details/78712451 1,使用容器: 2,使用自建 ...
- VC++动态链接库(DLL)编程深入浅出(三)
前面我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧. 另外,自从本文开始连载后,收到了一些读者的e-mail.有的读者提出了一些问题,笔者将在本文的最后一次连载中 ...