//终于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的更多相关文章

  1. PAT1075. PAT Judge (25)

    其中在排名输出上参照了 http://blog.csdn.net/xyzchenzd/article/details/27074665,原先自己写的很繁琐,而且还有一个测试点不通过. #include ...

  2. PAT 1075 PAT Judge[比较]

    1075 PAT Judge (25 分) The ranklist of PAT is generated from the status list, which shows the scores ...

  3. A1075 PAT Judge (25)(25 分)

    A1075 PAT Judge (25)(25 分) The ranklist of PAT is generated from the status list, which shows the sc ...

  4. 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 ...

  5. PAT 甲级 1075 PAT Judge (25分)(较简单,注意细节)

    1075 PAT Judge (25分)   The ranklist of PAT is generated from the status list, which shows the scores ...

  6. PAT_A1075#PAT Judge

    Source: PAT A1075 PAT Judge (25 分) Description: The ranklist of PAT is generated from the status lis ...

  7. PAT Judge

    原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...

  8. 10-排序5 PAT Judge

    用了冒泡和插入排序 果然没有什么本质区别..都是运行超时 用库函数sort也超时 The ranklist of PAT is generated from the status list, whic ...

  9. PAT 1075. PAT Judge (25)

    题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1075 此题主要考察细节的处理,和对于题目要求的正确理解,另外就是相同的总分相同的排名的处理一定 ...

随机推荐

  1. [运维-服务器 – 2A] – nginx下绑定域名

    这个篇文章今天(2016-01-21)才有幸写了,因为自己对nginx部署以前没玩过,还得感谢下我们数字化的总经理.在这里记录下自己成长的经验,与遇到的问题. 因为自己的域名是在万网上买的,解析无法直 ...

  2. 在C#中子线程如何操作主线程中窗体上控件

    在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能 简单的通过控件对象名来操作,但不是说不能进行操作,微软 ...

  3. Topology的构建

    public class BlackListBolt extends BaseRichBolt{ private static Logger logger = Logger.getLogger(Bla ...

  4. PLSQL_性能优化系列12_Oracle Index Anaylsis索引分析

    2014-10-04 Created By BaoXinjian

  5. shell中实现自动登录(bash环境脚本中)

    自己的脚本: #!/bin/bash expect  -c  "     set timeout 3600;     spawn su -;     expect *assword:*;  ...

  6. java的内省(introspector)

    package com.wzh.test.introspector; import java.beans.BeanInfo; import java.beans.IntrospectionExcept ...

  7. Windows 32 程序设计

    C语言版 开发语言:C语言 开发工具:Visual Studio 2015 目      标:使用C语言,直接调用Windows API,创建Windows程序. 参考图书:<Windows程序 ...

  8. java web session监听销毁跳转

    1.了解如何使用HttpSessionListener监听session的销毁. 2.了解如何使用HttpSessionBindingListener监听session的销毁. 一. 使用HttpSe ...

  9. 20145305 《Java程序设计》第9周学习总结

    教材学习内容总结 1.厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: JDBC-ODBC Bridge Driver Native API Driver JDBC-Net Driver ...

  10. [ActionScript 3.0] AS3 用于拖动对象时一次一页的缓动

    package com.fylibs.components.effects{ import com.tweener.transitions.Tweener; import flash.display. ...