PAT1075. PAT Judge
//终于A了,不难却觉着坑多的的题,注意-1的处理,感觉我是受memset置0的束缚了,可以把初试成绩置-1.就不用debug怎么久,注意对于-1的处理,不然漏洞百出
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn=10001;
struct node
{
int id;
int r;
int submitted;
int s[6];
int sub[6];
int perfect;
};
int per[6];
node list[maxn];
vector<node>ans;
bool cmp(node a,node b)
{
if(a.s[0]!=b.s[0])return a.s[0]>b.s[0];
else if(a.perfect!=b.perfect)return a.perfect>b.perfect;
else return a.id<b.id;
}
int main()
{
freopen("input.txt","r",stdin);
int i,j,n,k,m;
memset(per,0,sizeof(per));
memset(list,0,sizeof(list));
while(scanf("%d%d%d",&n,&k,&m)!=EOF)
{
for(i=1;i<=k;i++)scanf("%d",&per[i]);
int uid,pid,s;
for(i=0;i<m;i++)
{
scanf("%d%d%d",&uid,&pid,&s);
list[uid].id=uid;
list[uid].sub[pid]++;
if(s==-1&&list[uid].s[pid]==0) list[uid].s[pid]=-1;
else if(list[uid].s[pid]<s)list[uid].s[pid]=s;
}
for(i=0;i<maxn;i++)
{
for(j=1;j<=k;j++)
{
//if(list[i].s[j]==-1)continue;
if(list[i].s[j]>0)list[i].s[0]+=list[i].s[j];
if(list[i].sub[j]>0&&list[i].s[j]!=-1)list[i].submitted=1;
if(list[i].s[j]==per[j])list[i].perfect++;
}
if(list[i].submitted&&list[i].s[0]>=0)ans.push_back(list[i]);
}
sort(ans.begin(),ans.end(),cmp);
for(i=0;i<ans.size();i++)
{
if(i!=0&&ans[i].s[0]==ans[i-1].s[0])ans[i].r=ans[i-1].r;
else ans[i].r=i+1;
}
for(i=0;i<ans.size();i++)
{
printf("%d %05d %d",ans[i].r,ans[i].id,ans[i].s[0]);
for(j=1;j<=k;j++)
{
if(ans[i].s[j]>0)printf(" %d",ans[i].s[j]);
else if(ans[i].sub[j]>0)printf(" 0");
else printf(" -");
}
printf("\n");
}
}
return 0;
}
PAT1075. PAT Judge的更多相关文章
- PAT1075. PAT Judge (25)
其中在排名输出上参照了 http://blog.csdn.net/xyzchenzd/article/details/27074665,原先自己写的很繁琐,而且还有一个测试点不通过. #include ...
- PAT 1075 PAT Judge[比较]
1075 PAT Judge (25 分) The ranklist of PAT is generated from the status list, which shows the scores ...
- A1075 PAT Judge (25)(25 分)
A1075 PAT Judge (25)(25 分) The ranklist of PAT is generated from the status list, which shows the sc ...
- PTA 10-排序5 PAT Judge (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/677 5-15 PAT Judge (25分) The ranklist of PA ...
- PAT 甲级 1075 PAT Judge (25分)(较简单,注意细节)
1075 PAT Judge (25分) The ranklist of PAT is generated from the status list, which shows the scores ...
- PAT_A1075#PAT Judge
Source: PAT A1075 PAT Judge (25 分) Description: The ranklist of PAT is generated from the status lis ...
- PAT Judge
原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...
- 10-排序5 PAT Judge
用了冒泡和插入排序 果然没有什么本质区别..都是运行超时 用库函数sort也超时 The ranklist of PAT is generated from the status list, whic ...
- PAT 1075. PAT Judge (25)
题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1075 此题主要考察细节的处理,和对于题目要求的正确理解,另外就是相同的总分相同的排名的处理一定 ...
随机推荐
- ArrayList源码
1.首先看对ArrayList的定义: public class ArrayList<E> extends AbstractList<E> implements Lis ...
- c# Base64编码和图片的互相转换代码
将图片转化为Base64字符串的流程是:首先使用BinaryFormatter将图片文件序列化为二进制数据,然后使用Convert类的ToBase64String方法.将Base64字符串转换为图片的 ...
- WindowsForm通过字符串名称实例化控件
private Control FindControl(Control control, string controlName) { Control c1; foreach (Control c in ...
- Python语言快速入门
Python的主提示符(>>>):是解释器告诉你它正在等待你输入的下一个语句 Python的次提示符(...):告诉你解释器正在等待你输入当前语句的其他部分 [简介] Python( ...
- java中的IO整理
写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...
- GCD信号量并发控制
/** * 当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_sem ...
- XML通過XSD產生CLASS
步驟一:通過XML獲取XSD 格式:xsd "XML的完整路徑帶文件名" /O:"輸出路徑不帶文件名". C:\Windows\system32>xsd ...
- cmd 登录oracle
源地址:http://zhidao.baidu.com/link?url=mehN7bFY14DGH6DwhpbJnAbzb_fI3WbQn2-WqVInyyqHkfYlZSfu7GQVjQgQoPV ...
- [ActionScript] AS3代码实现渐变遮罩效果
import flash.display.Shape; import flash.display.GradientType; import flash.geom.Matrix; import flas ...
- Java SE 第十六讲----面向对象特征之继承
1.继承(inheritance):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类也叫[基类 baseclass]),继承的类叫做子类,java中的继承使用extends关键字 ...