hdu6023-Automatic Judge-2017中国大学生程序设计竞赛 - 女生专场-1001

本文深入探讨了ACM竞赛的基本规则,重点解释了已通过题目不再受后续提交影响的规则,以及每次未通过的提交将导致20分钟的罚时规定。通过一个C++示例代码进一步说明了如何计算参赛者的最终成绩。

这题主要就是考ACM的规则

唉,我一直在进行ACM和类似ACM的比赛,结果规则都不是很清楚,这题我WA了几次,失败。
我写这个主要博客主要是让我自己清楚一下ACM的比赛规则。

一般的规则我们都很清楚了,现在说一下我之前不是很清楚的。

已经AC的题不管你之后怎么提交都不影响你的时间。

交的代码没AC的一次会罚时20分钟。

上面的罚时是错的题罚时,如果该题没过不计入你的时间,该题过了则一并计入你的时间。

详细见代码

#include <bits/stdc++.h>
using namespace std;

int vis[15],_time[15];//vis[]记录题目是否AC,_time[]记录每道题的时间

int main()
{
    int T,n,m,ans,num,h,mi;
    char str[5];
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        ans=0;
        memset(vis,0,sizeof(vis));
        memset(_time,0,sizeof(_time));
        for(int i=1;i<=m;i++)
        {
            scanf("%d %d:%d %s",&num,&h,&mi,str);
            num %= 1000;
            if(vis[num]) continue;  //已经AC的题不用再管,因为不会再罚时
            if(strcmp(str,"AC")==0)
            {
                vis[num]=1;  //将该题置为AC
                ans += h*60+mi+_time[num];  //AC后把该题时间计入你的总时间
            }
            else
            {
                _time[num] += 20;  //罚时罚在该题上,该题没AC则不计入总时间,AC则计入
            }
        }
        num = 0;  //num为AC的题目数
        for(int i=1;i<=n;i++)
        {
            if(vis[i]) num++;
        }
        printf("%d %d\n",num,ans);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值