其中在排名输出上参照了

http://blog.csdn.net/xyzchenzd/article/details/27074665,原先自己写的很繁琐,而且还有一个测试点不通过。

#include <iostream>
#include <vector>
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
struct PATInfo
{
int userId;
int p[10];
int sum;
int flag;// is qualified to output
int perfect;// full score num
PATInfo(){
for(int j=0;j<10;j++) p[j]=-2;
sum=0;
flag=0;
perfect=0;
}
};
int n,k,m;
int i,j;
int prob[10];
bool cmp(const PATInfo &a,const PATInfo &b){
if(a.sum!=b.sum) return a.sum>b.sum;
if(a.perfect!=b.perfect) return a.perfect>b.perfect;
return a.userId<b.userId;
}
int main()
{ cin>>n>>k>>m;
PATInfo *userSet=new PATInfo[n+1];
for(i=1;i<=k;i++) cin>>prob[i];
for(i=1;i<=n;i++) userSet[i].userId=i;
int uId,pId,obtainS;
for(i=0;i<m;i++){
cin>>uId>>pId>>obtainS;
if(userSet[uId].p[pId]<obtainS){
if(obtainS>=0){
userSet[uId].sum+=obtainS;
userSet[uId].flag=1;
}
if(userSet[uId].p[pId]>0){
userSet[uId].sum-=userSet[uId].p[pId];
}
userSet[uId].p[pId]=obtainS;
if(obtainS==prob[pId]){
userSet[uId].perfect++;
}
}
}
sort(userSet+1,userSet+n+1,cmp);
int score=userSet[0].sum;
int t=1;
for(i=1;i<=n;i++){
if(userSet[i].flag==0) break;
if(score!=userSet[i].sum){
t=i;
score=userSet[i].sum;
}
printf("%d %05d ",t,userSet[i].userId);
cout<<userSet[i].sum;
for(j=1;j<=k;j++){
if(userSet[i].p[j]==-2){
cout<<" -";
}else if(userSet[i].p[j]==-1){
cout<<" 0";
}else{
cout<<" "<<userSet[i].p[j];
}
}
cout<<endl;
}
delete [] userSet;
return 0;
}

  

最新文章

  1. 从零开始的Android新项目1 - 架构搭建篇
  2. 【UFLDL】Exercise: Convolutional Neural Network
  3. yum工具介绍
  4. VS2010下 LibVLC开发环境搭建
  5. js防刷新的倒计时
  6. POJ3268 Silver Cow Party(dijkstra+矩阵转置)
  7. 转: AlphaImageLoader简介
  8. Swift try try! try?使用和区别
  9. 使用Hexo+Github一步步搭建属于自己的博客(基础)
  10. [Sdoi2017]树点涂色 [lct 线段树]
  11. Bugku 杂项 眼见非实
  12. CodeForces - 163B Lemmings
  13. python3之end关键字
  14. PXE安装操作系统
  15. Spring基础(6) : 普通Bean对象中保存ApplicationContext
  16. 第12月第14天 sfml cmake
  17. unity脚本封装成dll
  18. python3.6 利用requests和正则表达式爬取猫眼电影TOP100
  19. Linux菜鸟入门级命令大全
  20. 【CodeForces】585 E. Present for Vitalik the Philatelist

热门文章

  1. 17.Delete Methods-官方文档摘录
  2. Mybatis框架学习总结-优化Mybatis配置文件中的配置
  3. sails ORM组件 Waterline v0.10 英文文档
  4. ALV tree标准DEMO
  5. lamp环境的搭建和安装
  6. Java游戏服务器成长之路——弱联网游戏篇(源码分析)
  7. ACM对拍程序
  8. 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改
  9. Pivot 和 Global 的一些总结
  10. C++命名规则(转)