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

这题主要就是考ACM的规则

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

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

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

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

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

详细见代码

#include 
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;
}

你可能感兴趣的:(ACM,hdu,模拟)