题目倒是很长,给出了一大篇篇幅讲述。大意就是我们平时做题目的时候会有ac、pe、wa、ce、mle之类的提示,然后每次错误都会罚时20分钟,当题目ac之后会把当前时间加上罚时一起计算。给出m个提交记录,请输出这个队ac的题目数量和用时。就是简单模拟,只不过要注意ac过的题再ac是要忽略的,并且这个队伍不会ce。


代码:

StatusAccepted
Memory1728kB
Length911
LangC++
#include <iostream>
#include <cstdio>
#include <memory.h>
#include <cstring>
using namespace std;
const int maxn=14;
int time[maxn], t, n, m, prb, hh, mm, ans, all;
char cmd[4];
bool ac[maxn];
int main()
{
    scanf("%d", &t);
    while(t--){
        memset(time, 0, sizeof(time));
        memset(ac, 0, sizeof(ac));
        ans=all=0;
        scanf("%d%d", &n, &m);
        while(m--){
            scanf("%d %d:%d %s", &prb, &hh, &mm, &cmd);
            prb-=1000;
            if(!ac[prb]){
                int tm=hh*60+mm;
                if(strcmp(cmd, "AC")==0){
                    time[prb]+=tm;
                    ac[prb]=1;
                }
                else time[prb]+=20;
            }
            if(ac[prb]&&time[prb]!=-1){
                ans+=time[prb];
                all++;
                time[prb]=-1;
            }
        }
        printf("%d %d\n", all, ans);
    }
    return 0;
}