样例:

#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;

struct sub{                      声明结构体         //
int ci,pi,ti,ri;                               //队号,题数,罚时,ac
}s[1100];

struct team{                                        //    声明结构体
int id;                                                 //队号
int num;                                         //   题数
int tal_time;                                //罚时
int times[30];                                          //提交次数
int ac[30];                                    //是否ac
}t[1100];

bool cmp1(sub a,sub b){                         //    按照罚时升序排列
return a.ti<b.ti;
}

bool cmp2(team a,team b){                    //如果数量不相等按照题数降序排列 
if(a.num!=b.num)
return a.num>b.num;
if(a.tal_time!=b.tal_time)                   //如果罚时不相等,按照罚时升序排列。
return a.tal_time<b.tal_time;                   
return a.id<b.id;                                            //按照队伍id排序升序
}

int main()                      //主函数

{
int c,n;
int i,j;
while(scanf("%d%d",&c,&n)!=EOF){
for(i=1;i<=c;++i){                                         //将id  num等初始化为零
t[i].id=i;
t[i].tal_time=0;
t[i].num=0;
memset(t[i].times,0,sizeof(t[i].times));                memset函数用来将数组初始化为零
memset(t[i].ac,0,sizeof(t[i].ac));
}
for(i=0;i<n;++i){!
scanf("%d%d%d%d",&s[i].ci,&s[i].pi,&s[i].ti,&s[i].ri);                     //输入变量
}
sort(s,s+n,cmp1);                                                                                    //按照cmp1调用快排
for(i=0;i<n;++i){
if(!(t[s[i].ci].ac[s[i].pi])){                                                                       如果t[s[i].ci].ac[s[i].pi]!=1
if(!s[i].ri){                                                                                      如果s[i].ri!=1;
t[s[i].ci].times[s[i].pi]++;                                                     提交次数+1;
}else{
t[s[i].ci].tal_time+=s[i].ti+t[s[i].ci].times[s[i].pi]*20*60;             计算罚时的总时间
t[s[i].ci].ac[s[i].pi]=1;                                                                   通过ac
t[s[i].ci].num++;                    做出来的题数+1;
}
}
}

sort(t+1,t+c+1,cmp2);            调用cmp2快排

for(i=1;i<=c;++i){                                  
if(i!=1)
printf(" ");
printf("%d",t[i].id);                  输出结果。
}
printf("\n");
}
return 0;
}

总结“:

关于一些问题的处理.计算罚时数。如果一道题ac了过后,再提交一个错误的代码不计罚时.如果队伍存在排名相等的,则按照队伍号的升序排列.需注意的就是罚时的计算.

ACM比赛排名与罚时计算问题相关推荐

  1. C语言oj罚时计算,罚时计算器(字符处理,结构,指针数组).c

    //目前还存在许多bug 题目描述 一般 ACM程序设计比赛都是五个小时.但是比赛结束时,DB(DataBase)发现总罚时很大,DB就想知道这总罚时算得对不对.但由于DB数学不是很好,想让你写个程序 ...

  2. 【总结】ACM比赛生涯总结

    程序设计竞赛相关奖项总结 时间 比赛 奖励 大一下学期 2017.5 西安交通大学ACM校赛 铜奖 大二下学期 2018.5 ICPC全国邀请赛-西安站 铜奖 2018.6 ICPC全国邀请赛-宁夏站 ...

  3. ACM 比赛 训练记录(持续更新)

    队伍 : 西安电子科技大学 voyage 成员 后户冯神flukehn 核弹少女zzs 可爱小⑨bzy 2019 CCPC Final(VP on 9.17) 第一次与队友进行 ACM 赛制的训练,结 ...

  4. 【转】ACM比赛经验

    参考网址:http://www.cnblogs.com/zhaoguanqin/archive/2011/08/24/2151758.html [转]ACM比赛经验 ACM比赛经验: 推荐此篇文章打印 ...

  5. #问题求解与编程# 实验二 D 比赛排名预测

    比赛排名预测 发布时间: 2018年3月27日 09:17   最后更新: 2018年3月29日 20:13   时间限制: 1000ms   内存限制: 128M 描述 听说ACM爱好者协会即将举办 ...

  6. 福利来了!国内TOP3的超级云计算,免费领2000核时计算资源!

    长久以来,超级计算机一直是各国竞相角逐的科技制高点,也是国家综合科技实力的体现,尤其是近几年,中国和美国在超算领域的竞争已经进入"白热化".2020年,我国超级计算机在<全球 ...

  7. 第一次参加学校的ACM比赛所学及感想

    第一次写博客!还很不熟练嘻嘻,不过很开心自己有想写下来的东西,以后会一直坚持写的? 高考报志愿的时候不知道自己抽了什么疯,选择了计算机专业,有一部分原因是因为之前看了微微一笑很倾城?觉得女生搞IT很帅 ...

  8. 科研福利!国内TOP3的超算中心,免费领2000核时计算资源

    长久以来,超级计算机一直是各国竞相角逐的科技制高点,也是国家综合科技实力的体现,尤其是近几年,中国和美国在超算领域的竞争已经进入"白热化".2020年,我国超级计算机在<全球 ...

  9. “玲珑杯”ACM比赛 Round #21-C-战舰萝莉(线段树区间更新)

    "玲珑杯"ACM比赛 Round #21 Start Time:2017-09-23 17:00:00 End Time:2017-09-23 19:30:00 Refresh T ...

最新文章

  1. 读书:历史 -- 奥斯曼帝国六百年
  2. Nginx之rewrite使用
  3. centos ntfs-3g 安装和使用
  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)
  5. mysql集群session_Jetty9.2.2集群Session共享
  6. 这样理解PWM,想不懂都难!
  7. 三分钟撸完前后端crypto-js加解密,你学废了吗?
  8. java连接数据库的配置文件
  9. 再谈几种语言的运行速度比较:看第三方比较结论!
  10. npm 编译慢_如何有效提升快应用(Webpack)编译速度
  11. python画图x轴时间间隔_matplotlib绘图-设置横坐标为日期显示范围与间隔
  12. 剑指 offer set 8 树的子结构
  13. 熵权法求权重的Matlab实现
  14. JAVA小乌龟游泳_描写乌龟游泳的作文
  15. java中jdk1.8的hashmap为啥要用尾插法,不用头插入。
  16. 华硕无双+2022款笔记本重装系统笔记
  17. 黑苹果之联想Y430P亮度记忆功能
  18. html5是什么语言,html5 css3是什么?
  19. ORA-01940: cannot drop a user that is currently connected 问题解决
  20. Golang lua交互——gopher-lua中call函数使用

热门文章

  1. 【Java|golang】2299. 强密码检验器 II
  2. 山东自然人电子税务局(扣缴端)_为什么我登录自然人电子税务局没有单位办税这个按钮?...
  3. python中ord什么意思_python里ord
  4. 全国大学生软件测试大赛【嵌入式测试个人赛】【练习题分析】
  5. 使用Oauth2.0实现微博授权登录
  6. 第一次写博客+学习学习markdown
  7. python scrapy爬虫防止ip被封的实现方案
  8. RobotStudio5.14版本破解
  9. 战歌竞技场服务器维护中,《战歌竞技场》4月13日开启终极测试
  10. 浙江工业大学计算机复试经验