河工大玲珑校赛 饶学妹的比赛

饶学妹的比赛
时间限制: 1 秒 内存限制: 64 MB
提交: 363 解决: 116
提交 状态
题目描述
饶学妹组织了一场ACM赛制的比赛,大家纷纷慕名来参加。比赛中大家交题只会有两种结果:AC,WA。比赛结束了,饶学妹制作榜单啦。首先按AC题目的数目(重复AC一道题只算一次)从多到少排名;AC题目数目相同的同学按罚时(罚时计算方式为:单题罚时 = (首次AC该题目时间 + 首次AC之前WA的次数 * 20) min,总罚时 = 各题罚时之和;即某题目AC之后,对这道题目后续的提交均不计入罚时)从少到多排列;AC数目相同且罚时也相同的同学,按编号从小往大排序。
输入

第一行为n,m,k(1≤n≤1000,1≤m≤10000,1≤k≤10),分别表示参加比赛的人数、提交总次数和总题数。
之后一行为n个用空格分隔的字符串,表示n位参赛选手的姓名(每个字符串长度均不超过20,且仅含小写字母);
之后m行,每行均为 Timei IDi PIDi Resulti,(1≤Timei≤Timei+1≤300,1≤IDi≤n,1≤PIDi≤k,Resulti="AC"/"WA"),表示编号为IDi的选手在Timei时刻提交了编号为PIDi的题目,且结果为Resulti.

输出
输出n行,按排名从高到低排列。每行分别输出该选手的姓名,过题数,总罚时,中间均为一个空格间隔。
样例输入
5 11 10
phx lsf zk rqy ch
1 1 1 AC
1 1 2 AC
2 1 3 AC
2 1 4 AC
3 2 2 WA
4 2 2 AC
5 3 2 AC
10 5 1 WA
20 5 2 WA
30 5 3 WA
40 5 4 WA
样例输出
phx 4 6
zk 1 5
lsf 1 24
rqy 0 0
ch 0 0

题意概括:
给你n个同学的在oj上的做题情况,根据题数,罚时排序。
解题思路:
把这m次提交情况都放入一个结构体内,然后计算每个人做对每题的用时和罚时之和,和做题数量,然后写三个循环排序,分别按照做题数目,时间,学号排序。
错误分析:
对那些开始做错最后又AC的题的罚时应该每题分开加,当时少些了一点把所有罚时加一起了。

代码:
#include<stdio.h>
#include<string.h>
struct p
{
int time;
int name;
int tm;
char s[50];
};
int main()
{
struct p a[10100],t;
int i,j,k,l,y,u,v,m,n,f[10100],b[1010][101],tt[10100],sum[10100],sum2[1010][50];
char nn[10100][50],c;
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
memset(b,0,sizeof(b));
memset(f,0,sizeof(f));
memset(tt,0,sizeof(tt));
memset(sum,0,sizeof(sum));
memset(sum2,0,sizeof(sum2));
for(i=1;i<=n;i++)
{
scanf("%s",nn[i]);
f[i]=i;
}
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a[i].time,&a[i].name,&a[i].tm);
scanf("%s",a[i].s);
}

for(i=0;i<m;i++)
{
for(j=1;j<=n;j++)
{
if(a[i].name==j&&b[j][a[i].tm]==0&&a[i].s[0]==‘A‘)
{
sum[j]+=a[i].time+sum2[j][a[i].tm];
b[j][a[i].tm]=1;
tt[j]++;
}
if(a[i].name==j&&b[j][a[i].tm]==0&&a[i].s[0]==‘W‘)
{
sum2[j][a[i].tm]+=20;

}

}
}

for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(tt[j]<tt[j+1])
{
y=tt[j];tt[j]=tt[j+1];tt[j+1]=y;
u=sum[j];sum[j]=sum[j+1];sum[j+1]=u;
v=f[j];f[j]=f[j+1];f[j+1]=v;

}
}
}

y=0;u=0;v=0;
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(tt[j]==tt[j+1]&&sum[j]>sum[j+1])

{
u=sum[j];sum[j]=sum[j+1];sum[j+1]=u;
y=tt[j];tt[j]=tt[j+1];tt[j+1]=y;

v=f[j];f[j]=f[j+1];f[j+1]=v;
}
}
}

y=0;u=0;v=0;
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(tt[j]==tt[j+1]&&sum[j]==sum[j+1]&&f[j]>f[j+1])
{
y=tt[j];tt[j]=tt[j+1];tt[j+1]=y;
u=sum[j];sum[j]=sum[j+1];sum[j+1]=u;
v=f[j];f[j]=f[j+1];f[j+1]=v;
}
}
}
for(i=1;i<=n;i++)
{
printf("%s",nn[f[i]]);
printf(" %d %d\n",tt[i],sum[i]);
}

}

return 0;
}

时间: 2025-01-03 08:49:21

河工大玲珑校赛 饶学妹的比赛的相关文章

2016年 河南工业大学校赛 A题.饶学妹的比赛

饶学妹的比赛 时间限制: 1 秒  内存限制: 64 MB  |  提交: 385  解决: 120 题目描述 饶学妹组织了一场ACM赛制的比赛,大家纷纷慕名来参加.比赛中大家交题只会有两种结果:AC,WA.比赛结束了,饶学妹制作榜单啦.首先按AC题目的数目(重复AC一道题只算一次)从多到少排名:AC题目数目相同的同学按罚时(罚时计算方式为:单题罚时 = (首次AC该题目时间 + 首次AC之前WA的次数 * 20) min,总罚时 = 各题罚时之和:即某题目AC之后,对这道题目后续的提交均不计入

河工大玲珑杯校赛随笔

去工大的心情是美好的,回学校的心情是崩溃的_(°:з」∠)_,,,各种坑人啊,热身赛上莫名其妙的TEL让我累觉不爱,还有就是竟然不让吃饭,,,去听宣讲会,,,神坑,最坑的是我们在正式比赛上第一题---键盘题就陷入了坑中无法自拔,后来过了一个小时才发现,我的代码没有问题,锅都在我测试样例的txt文件上,,,当时就想跪了,后来就是调整心情努力过了I题小天使,最后输在了有开的两题上,,,整整3个小时啊,就在不断的TEL和RE中度过,呜呜呜呜,连个WA都不给我~~然后比赛中竟然跳了一次电闸,当时就有骂人

河南工业大学2017校赛题解

问题 A: 饶学妹的比赛 题意: 给你一场比赛每人提交的记录,计算最后的排名 题解: 模拟+排序 代码: 1 #include <map> 2 #include <set> 3 #include <cmath> 4 #include <queue> 5 #include <stack> 6 #include <cstdio> 7 #include <string> 8 #include <vector> 9 #

校赛总结

写写校赛总结....... 这两次校赛是我们组队以后第一次的比赛...第一场打得很拙,第二场还可以吧,第一场校赛--毕竟是期待了很久的校赛,所以感觉还是很紧张,吃饭的时候打了二两,剩了一大半==, 这次我们队名叫 I_Love_High_Math......没走到现场,就快下雨了,真的有点郁闷==.到了以后下雨了,和一个队友被困雨中,,出来以后衣服湿了,一开始就悲剧了...     然后一开场就感觉不好.比赛开始的时候,我去写头文件,然后W说A是水题,然后叫我写,平时都是我写第一题的这次我不想开

2014哈商大ICPC/ACM校赛解题报告

被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数据:点此下载 ============================================================== a:逆序数组+删除特定元素 题目: 小伙伴们好像非常多没接触过ICPC,那先来一道水题尝尝鲜,给出 一个数组,和一个特征值.将这个数组中特征值值删除后逆序输出.

[林大帅作品连载]第二回 环岛路绝景配绝音 俏学妹书店忆书院

第二回 环岛路绝景配绝音 俏学妹书店忆书院    诗云:      漫言旧情心未冷,夜寂乱稿伴孤灯.            本意沈吟新人至,人生何处不相逢?       话接上回,林二抬头一看,只见那女童生微笑吟吟到:“叨劳了,我几个路过宝地,只因醉心于这路旁小花,竟忘了投宿之事,请问八日客栈位于何处?”,话未叙完,两颊便已微红.林二一见,便来了精神,方才丢手机,钱袋之事,早已抛到九霄云外.却故意顿了顿道:“几位姑娘莫急,这前面不远处便是‘八日’客栈,小可无事可领诸位前往”.       说罢那

如何迎接大学生活?给厦大信息学院学弟学妹们的一封信

前不久回厦大看看,顺便找老同学陈华宾老师吃了个饭,席间提到华南理工开设了cocos2d-x课程,过了几天,华宾老师便和我要资料和联系人电话,说也打算在信息学院开课,我想,大学里要开新课可没那么容易,至少也要等明年了.没想到,上个月就已经开始上课了,真是非常的迅速.可是,现在才开课不到一个月,我就听说听课的同学已经从60多人下降到20多个. cocos2d-x是目前被广泛采用的一个手机游戏编程框架,在学校里可以接触到一个当前流行的实用技术,是很难得的机会,但是很多同学却放弃了,我觉得很可惜.想想自

学妹来实习,看我如何步步为营!

1. 每年暑假都会有许多大学生出来找实习.程序员们常常对此怀有某种期待——万一来一个长得乖的小妹,那无疑是给整个夏天带来了甜爽的清凉! 奈何天公不作美,从来就没有送来这样一个林妹妹!纵然年年来的实习生那么多,只可惜基本上都是抠脚大汉.即便偶尔撞到一两个女生,多半也是长得歪! 要说猥琐大叔的世界,哥不懂——管你一米五三两百多斤,管你脸大鼻塌眼小肤黑——那几个老杆子都会弹冠相庆.日日殷勤. 我总觉得这一定是一种病,也许是电脑辐射损伤了大脑皮层的某些反射区,才让他们变得不辩牛马.人畜不分. 每当肥鼠强

校赛感想

校赛决赛. 时间和以往不同,改成9:00——14:00了,本来以为要饿肚子了,没想到的是竟然发了面包和士力架.难得啊,呵呵. 我发现acm越来越和我开始参加的时候想的不一样了.校赛的题目,多数都是搞一些小技巧,或者题目描述不清坑人==,根本不是用学来的算法去解决一些精巧的问题.这和我当初搞acm初衷很相悖,我不想去刷这些所谓的技巧题,我看不到自己能力的提高,3xian大神说那些用到经典算法的巧妙的题目是他很喜欢的,但是那是acm中最垃圾的题目.但是我喜欢那样的题目. 看不到自己的未来,好忧伤.