1075. PAT Judge (25)
1075. PAT Judge (25)
思路:题目要求是对于未曾有任何提交的或者是提交了但是没有一个能通过编译的都不进行输出,但是注意,对于提交了但是编译没有通过的,得分应该是0(比如00005的第二题)
一个好的解决办法是把所有成绩初始化为-2,大于当前grade值的都进行更新,而对于只要有成绩大于0的,都应该在list里,如果值为-1,则输出0,如果值为-2,则输出-;
#include <stdio.h>
#include <stdlib.h>
struct record
{int thisid;int grade[5+1];int sumscores;int countperfect;int islist;int rank;
}s[10000+1];
int comp(const void*a,const void*b)
{struct record *p=(struct record*)a,*q=(struct record*)b;if(p->sumscores!=q->sumscores)return q->sumscores-p->sumscores;else if(p->countperfect!=q->countperfect)return q->countperfect-p->countperfect;elsereturn p->thisid-q->thisid;
}
int main()
{int n,k,m,p[5+1];scanf("%d %d %d",&n,&k,&m);for(int i=1;i<=k;++i)scanf("%d",&p[i]);for(int i=1;i<=n;++i){s[i].thisid=i;s[i].grade[1]=s[i].grade[2]=s[i].grade[3]=s[i].grade[4]=s[i].grade[5]=-2;}for(int i=0;i<m;++i){int id,sn,score;scanf("%d %d %d",&id,&sn,&score);if(score>s[id].grade[sn])s[id].grade[sn]=score;}for(int i=1;i<=n;++i){for(int j=1;j<=k;++j){if(s[i].grade[j]==p[j])++s[i].countperfect;if(s[i].grade[j]>=0){s[i].islist=1;s[i].sumscores+=s[i].grade[j];}}}qsort(&s[1],n,sizeof(struct record),comp);s[1].rank=1;for(int i=2;i<=n;++i){if(s[i].sumscores==s[i-1].sumscores)s[i].rank=s[i-1].rank;elses[i].rank=i;}for(int i=1;i<=n;++i){if(s[i].islist){printf("%d %05d %d",s[i].rank,s[i].thisid,s[i].sumscores);for(int j=1;j<=k;++j){if(s[i].grade[j]==-1)printf(" 0");else if(s[i].grade[j]==-2)printf(" -");else printf(" %d",s[i].grade[j]);}printf("\n");}}return 0;
}
转载于:https://www.cnblogs.com/xLester/p/7570395.html
1075. PAT Judge (25)相关推荐
- 1075 PAT Judge (25 分)【难度: 一般 / 知识点: 多关键字排序】
https://pintia.cn/problem-sets/994805342720868352/problems/994805393241260032 就是排序,注意一些细节即可. #includ ...
- PAT甲级1075 PAT Judge:[C++题解]排序、结构体
文章目录 题目分析 题目链接 题目分析 分析:主要问题在于判断是否出现过,如果出现过就不需要再初始化一个结构体,如果未出现过再初始化一个结构体. 当然还需要开一个hash表,用来映射学生id和结构体信 ...
- 1075 PAT Judge 测试点四
测试点四试了很多次 是因为排序问题,把不能输出的和可以输出的记录一起排序,这里修改一下排序算法就ok了 参考了知乎的文章[PAT A1075]PAT Judge(详细解决测试点4!) - 知乎 (zh ...
- 1075 PAT Judge
1. 这一题一开始,为了同一个人的数据更新得方便,我把id从字符串转化成整数,作为数组下标,但是注意了,每个学生还是要有字符串的id属性(根据下标得到),因为后面一旦排序,数组下标就毫无意义了. 2. ...
- 【PAT (Advanced Level) Practice】1093 Count PAT‘s (25 分)
1093 Count PAT's (25 分) The string APPAPT contains two PAT's as substrings. The first one is formed ...
- PAT-B 1040. 有几个PAT(25)
1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...
- PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)
PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...
- PAT A 1025. PAT Ranking (25)
题目 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of ...
- PAT Advanced 1025. PAT Ranking (25) (C语言实现)
我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容(本篇文章链接).此处文章目前已更新至与Github Pages同步.欢迎star我的r ...
- 1093 Count PAT‘s (25 分)【难度: 一般 / 知识点: 前缀和 组合数】
https://pintia.cn/problem-sets/994805342720868352/problems/994805373582557184 PAT乙级的原题,这里不在赘述,就是前缀和, ...
最新文章
- Python 关键字 global、nonlocal、yield用法
- matplotlib如何绘制两点间连线_机器学习:Python常用库——Matplotlib库
- 2.06_Python网络爬虫_正则表达式
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
- spring mvc原理_Spring常见问题整理
- html无损转换pdf,Pdf2html :高保真PDF至HTML转换
- linux mysql启动错误
- LDAPimplementation
- java自动校准程序_java – VisualVM校准步骤与Windows 10挂起
- FLOPs衡量模型复杂度
- LCD 驱动的整体分析。
- PHP 开发者如何做代码审查?
- POJ - 1733 带权并查集 模运算 利用map进行离散化 题目没看全导致疯狂WA
- web课程设计网页制作、基于HTML+CSS大学校园班级网页设计
- ajax串数组包含双引号,解决AJAX请求中含有数组的办法
- 气溶胶反演输入转化错误_余涛-气溶胶遥感反演研究20150714.ppt
- python在园林中的应用_攀缘植物在园林中的应用
- 这是病,得治,懂吗?
- error C2533: “CTester::{ctor}”: 构造函数不能有返回类型
- satisfy with用法
热门文章
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析...
- c#中base64加密解密
- console ouput 与 重定向输出 效率对比
- 戴爾新電腦走上時尚路線
- Codeforces 700 C. Break Up(Tarjan求桥)
- metasploit命令大全
- easyui datagrid 去掉外边框及行与行之间的横线标题字体
- 从其它系统登录到SharePoint 2010系统的单点登录
- CSS设置居屏幕中间的弹出块
- Thinking in C++ ----第二章 对象的创建和使用