Description

Welcome to HDU to take part in the second CCPC girls’ competition! 
A new automatic judge system is used for this competition. During the five-hour contest time, you can submit your code to the system, then the judge will reply you. Here is a list of the judge's replies and their meaning:

1. $Accepted (AC) $: Yes, your program is correct. You did a good job!

2. $Presentation Error (PE)$ : Your program's output format is not exactly the same as required by the problem, although the output is correct. This usually means the existence of omitted or extra blank characters (white spaces, tab characters and/or new line characters) between any two non-blank characters, and/or blank lines (a line consisting of only blank characters) between any two non-blank lines. Trailing blank characters at the end of each line and trailing blank lines at the of output are not considered format errors. Check the output for spaces, blank lines, etc. against the problem's output specification.

3. $Wrong Answer (WA)$ : Correct solution not reached for the inputs. The inputs and outputs that we use to test the programs are not public (it is recomendable to get accustomed to a true contest dynamic :-)

4. $Runtime Error (RE)$ : Your program failed during the execution and you will receive the hints for the reasons.

5. $Time Limit Exceeded (TLE)$ : Your program tried to run during too much time.

6. $Memory Limit Exceeded (MLE) $: Your program tried to use more memory than the judge default settings.

7. $Output Limit Exceeded (OLE) $: Your program tried to write too much information. This usually occurs if it goes into a infinite loop.

8. $Compilation Error (CE) $: The compiler fails to compile your program. Warning messages are not considered errors. Click on the judge's reply to see the warning and error messages produced by the compiler.

For each submission, if it is the first time that the judge returns ``AC'' on this problem, then it means you have passed this problem, and the current time will be added to the penalty of your team. In addition, every time you pass a problem, each unsuccessful try for that problem before is counted as 20 minutes penalty, it should also be added to the penalty of your team. 
Now given the number of problems in the contest and the submission records of a team. Please write a program to calculate the number of problems the team passed and their penalty.

 

Input

The first line of the input contains an integer $T(1\leq T\leq20)$, denoting the number of test cases. 
In each test case, there are two integers $n(1\leq n\leq 13)$ and $m(1\leq m\leq 100)$ in the first line, denoting the number of problems and the number of submissions of a team. Problems are labeled by 1001, 1002, ..., $1000+n$. 
In the following $m$ lines, each line contains an integer $x(1001\leq x\leq 1000+n)$ and two strings $t(00:00\leq t\leq 05:00)$ and $s$, denoting the team submits problem $x$ at time $t$, and the result is $s$. $t$ is in the format of HH:MM, while $s$ is in the set \{AC, PE, WA, RE, TLE, MLE, OLE\}. The team is so cautious that they never submit a CE code. It is guaranteed that all the $t$ in the input is in ascending order and every $t$ is unique. 
 

Output

For each test case, print a single line containing two integers $A$ and $B$, denoting the number of problems the team passed and the penalty. 
 

Sample Input

1
3 5
1002 00:02 AC
1003 00:05 WA
1003 00:06 WA
1003 00:07 AC
1002 04:59 AC
 

Sample Output

2 49
 
 
 
题目意思:基本就是ACM比赛的判题机制吧,但是有点不一样的是一道题只有最后AC了,才会增加罚时,没有AC的题不增加罚时
 
上代码:
 
 
 #include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct messages
{
int id;//题号
int h;//时
int m;//分
char s[];//状态
} a[];
int ac[];//用来标记是否ac过,ac了代表1,不ac代表0
int time[];
int main()
{
int t,n,m,i,sum,count;
scanf("%d",&t);
while(t--)
{
sum=;
count=;
memset(time,,sizeof(time));
memset(ac,,sizeof(ac));
scanf("%d%d",&n,&m);
for(i=; i<m; i++)
{
scanf("%d",&a[i].id);
scanf("%d:%d",&a[i].h,&a[i].m);
scanf(" %s",a[i].s);
if(ac[a[i].id]==)//用来过滤掉那些已经ac的题目
{
continue;
}
if(a[i].s[]=='A')
{
time[a[i].id]+=a[i].h*+a[i].m;
ac[a[i].id]=;
}
else
{
time[a[i].id]+=;
}
getchar();
}
for(i=; i<=+n; i++)//采用了类似哈希的方法
{
if(ac[i])
{
sum+=time[i];
count++;
}
}
printf("%d %d\n",count,sum);
}
return ;
}

Automatic Judge的更多相关文章

  1. HDU6023 Automatic Judge 2017-05-07 18:30 73人阅读 评论(0) 收藏

    Automatic Judge Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  2. APIPA(Automatic Private IP Addressing,自动专用IP寻址)

    APIPA APIPA(Automatic Private IP Addressing,自动专用IP寻址),是一个DHCP故障转移机制.当DHCP服务器出故障时, APIPA在169.254.0.1到 ...

  3. [SharePoint 2013] Automatic deployment script

    Implement automatic deployment through windows task. Add-PsSnapin Microsoft.SharePoint.PowerShell $t ...

  4. Gym 101102C---Bored Judge(区间最大值)

    题目链接 http://codeforces.com/gym/101102/problem/C problem description Judge Bahosain was bored at ACM ...

  5. JSONKit does not support Objective-C Automatic Reference Counting(ARC) / ARC forbids Objective-C objects in struct

    当我们在使用JSONKit处理数据时,直接将文件拉进项目往往会报这两个错“JSONKit   does not support Objective-C Automatic Reference Coun ...

  6. iOS开发 JSonKit does not support Objective-C Automatic Reference Counting(ARC)

    有使用JSonKit的朋友,如果遇到“JSonKit does not support Objective-C Automatic Reference Counting(ARC)”这种情况,可参照如下 ...

  7. NOJ 1074 Hey Judge(DFS回溯)

    Problem 1074: Hey Judge Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format: ...

  8. [转]error: 'retainCount' is unavailable: not available in automatic reference counting mode

    转载地址:http://choijing.iteye.com/blog/1860761   后来发现是编译选项的问题:   1.点击工程名 打开编译选项 2.在编译选项中,选择Bulid Settin ...

  9. [转]关于NSAutoreleasePool' is unavailable: not available in automatic reference counting mode的解决方法

    转载地址:http://blog.csdn.net/xbl1986/article/details/7216668 Xcode是Version 4.2 Build 4D151a 根据Objective ...

随机推荐

  1. foreach传值

  2. 如何使用git命令从github上取得项目

    首先我们要安装git, git官网:https://git-scm.com/点击打开链接 拉取项目步骤详解 新建文件夹,最好取为项目英文名***Project 进入文件夹,空白处右键,选择git Ba ...

  3. 集合之HashMap、Hashtable

    HashMap 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashtabl ...

  4. player视频.js

    var playStatus = 'pending'; var html_a = '<div class="weui-dialog__bd" id="lly_dia ...

  5. python基础的一些知识点

    ord 将字符转换为ASCIIchr 将ASCII转换为字符 元组不可修改,当只有一个元素时,要添加一个逗号集合不可修改,元素无序,不能重复 列表.元组.字典都是可迭代对象,就是可以遍历的对象多层循环 ...

  6. 实现动态的XML文件读写操作(依然带干货)

    前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义好XML文件的格式就不太现实了,如何实现不管 ...

  7. 全国Uber优步司机奖励政策 (1月4日-1月10日)

    本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...

  8. 3991: [SDOI2015]寻宝游戏

    3991: [SDOI2015]寻宝游戏 https://www.lydsy.com/JudgeOnline/problem.php?id=3991 分析: 虚树+set. 要求树上许多点之间的路径的 ...

  9. div仿textarea可输入

    原本要用textarea,但是后来发现好像只有IE支持textarea里边使用html标签,由于需要在textarea中显示一条横线(<hr />),在网上查了很久,都说textarea是 ...

  10. 使用Google Cloud Messaging (GCM),PHP 开发Android Push Notifications (安卓推送通知)

    什么是GCM? Google Cloud  Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发 ...