5-6 PAT排名汇总 (25分)
来源:互联网 发布:喜马拉雅mac版 编辑:程序博客网 时间:2024/05/17 03:35
5-6 PAT排名汇总 (25分)
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。
每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。
现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。
输入格式:
输入的第一行给出一个正整数N(≤\le≤100),代表考点总数。随后给出N个考点的成绩,格式为:首先一行给出正整数K(≤\le≤300),代表该考点的考生总数;随后K行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。
输出格式:
首先在第一行里输出考生总数。随后输出汇总的排名表,每个考生的信息占一行,顺序为:考号、最终排名、考点编号、在该考点的排名。其中考点按输入给出的顺序从1到N编号。考生的输出须按最终排名的非递减顺序输出,获得相同分数的考生应有相同名次,并按考号的递增顺序输出。
输入样例:
251234567890001 951234567890005 1001234567890003 951234567890002 771234567890004 8541234567890013 651234567890011 251234567890014 1001234567890012 85
输出样例:
91234567890005 1 1 11234567890014 1 2 11234567890001 3 1 21234567890003 3 1 21234567890004 5 1 41234567890012 5 2 21234567890002 7 1 51234567890013 8 2 31234567890011 9 2 4/// 暴力结构体只能是过一半多的测试点,还有一半是因为排序问题没有解决到位。
#include<bits/stdc++.h>using namespace std;const int maxn = 41700;struct ss{ char num[17]; int s; int rank;//总排名 int mark; int flag;} stu[maxn];bool cmp1(ss a, ss b)//排序辅助函数,有困难可搜索cmp函数详解{ if(a.s == b.s) { return strcmp(a.num, b.num) < 0; } return a.s > b.s;}int main(){ int N; int k[117]; int sum = 0; scanf("%d",&N); { int i, j; int l = 0, p = 0; for(i = 1; i <= N; i++) { scanf("%d",&k[i]); sum += k[i]; int tt = l; for(j = 1; j <= k[i]; j++) { scanf("%s%d",stu[l].num,&stu[l].s); stu[l].mark = i; l++; } sort(stu+tt,stu+l,cmp1); p = 2; stu[tt].rank = 1; for(int h = tt+1; h < l; h++) { if(stu[h-1].s == stu[h].s) { stu[h].rank = stu[h-1].rank; } else { stu[h].rank = p; } p++; } } sort(stu,stu+l,cmp1); int f = 1; int flag = 0; printf("%d\n",sum); stu[0].flag = 1; printf("%s %d %d %d\n",stu[0].num,stu[0].flag,stu[0].mark,stu[0].rank);//输出第一名 p = 2; for(int h = 1; h < l; h++) { if(stu[h-1].s == stu[h].s) { stu[h].flag = stu[h-1].flag; } else { stu[h].flag = p; } p++; } for(i = 1; i < l; i++) { printf("%s %d ",stu[i].num,stu[i].flag); printf("%d %d\n",stu[i].mark,stu[i].rank); } } return 0;}
0 0
- 5-6 PAT排名汇总 (25分)
- 5-41 PAT排名汇总 (25分)
- 5-4 PAT排名汇总 (25分)
- PAT排名汇总 (25分)
- PAT排名汇总(25 分)
- 7-41 PAT排名汇总(25 分)
- 7-21(排序) PAT排名汇总(25 分)
- PTA 7-21(排序) PAT排名汇总(25 分)25分代码
- PAT排名汇总
- PTA PAT排名汇总
- PAT排名汇总
- PAT排名汇总
- PAT7-07. PAT排名汇总
- 7-21 PAT排名汇总
- 7-07. PAT排名汇总(25) (结构体 ZJU_PAT)
- 5-15 PAT Judge (25分)
- 5-19 PAT Judge (25分)
- 10-排序5 PAT Judge (25分)
- python进阶10:__future__
- iOS 获取手机sim卡的运营商(移动,电信,联通) 相关信息
- jQuery选择器 含有特殊符号和含有空格的注意事项
- 关于nodejs 假设httpserver,会发现一次网页打开,服务端会响应两次的问题;
- LeetCode-36. Valid Sudoku
- 5-6 PAT排名汇总 (25分)
- Android 简谈安全那点事
- source folder、package、folder互相转换
- 软件工程(一)
- myeclipse新建项目中没有dynamatic
- 第六章 Spring Profile
- RAID重组和数据库数据的修复与验证过程小记
- HPUOJ---2017寒假作业--专题0/D-EXCEL排序
- 网络协议