/ SB域 / 题库 /

答案评分

答案评分

Background

对于一些简单整数的加减乘整除的口算题,老师不屑去做,所以交给你来完成,批改口算题的工作,这项工作非常的烦人,因为每个人的口算题都是不一样的(因为每个人水平不同)并且是自动生成的(我们保证自动生成的算式是完全符合数学整数四则运算的要求的,括号是匹配的,数据不超过longint范围内的),好处是这些的口算题的都是电子存储的,而不是纸质的,所以你想到了编程解决这些问题。

Description

这是老师批改口算题的格式:

MAXN=5;//一共有maxn道口算题即maxn个测试点test
TEST#1 AC sore#1=20;//第1个测试点信息
TEST#2 AC sore#2=20;//第2个测试点信息
TEST#3 AC sore#3=20;//第3个测试点信息
TEST#4 AC sore#4=20;//第4个测试点信息
TEST#5 AC sore#5=20;//第5个测试点信息
SORE=100;//总成绩,每道题得分之和
AC*5;RE*0;WA*0;//一些状态的统计

要注意:每道题的得分是随机分配的,即最终的成绩是按照做对数的百分率算。比如共有6题,做对5题,你的得分是:83(我们要求保留整数即可)
这就带来一个问题,如样例#3,在说明中已经给出解释。所以在这里首先保证总成绩的相对公平。
下面给出表示符号的意义:
与vijos的评测机一样,这些题目有三种状态AC,RE,WA
* AC:通过该测试点,即是有效得分;
* RE:输出的内容不是数字,而是字符,包括小数点(由于是整数四则运算无论何时出现小数点都是不规范的),不是有效得分;
* WA:输出内容是数字,但是答案错误,不是有效得分;

Format

Input

第1行一个整数n,表示口算题的数目
第2到n+1行每行一个字符串,表示一道口算题(长度小于255)
第n+2到2n+2每行一个整数,表示对上面几道口算题的结果

Output

第1行:'MAXN='n
第2行到n+1行 输出每个测试点的信息(按照上面的格式)
第n+2行‘SORE=’有效得分
第n+3行表示AC,RE,WA的数量,中间是一个半角分号
上面一切的输出都是1个半角符号,行末是1个半角分号隔开

Sample 1

Input

5
1+1
1*2
3/2
1-4
1*5
2
2
1
-3
5

Output

MAXN=5;
TESE#1 AC sore#1=20;
TESE#2 AC sore#2=20;
TESE#3 AC sore#3=20;
TESE#4 AC sore#4=20;
TESE#5 AC sore#5=20;
SORE=100;
AC*5;RE*0;WA*0;

Sample 2

Input

3
1+(1+2)/3*7
1+4/3*3
1+13*8/4
8
1-2
12

Output

MAXN=3;
TESE#1 AC sore#1=33;
TESE#2 RE sore#2=0;
TESE#3 WA sore#3=0;
SORE=33;
AC*1;RE*1;WA*1;

Sample 3

Input

6
1+1
1*2
3/2
1-4
1*5
1+1
2
2
1
-3
5
2

Output

MAXN=6;
TESE#1 AC sore#1=16;
TESE#2 AC sore#2=16;
TESE#3 AC sore#3=16;
TESE#4 AC sore#4=16;
TESE#5 AC sore#5=16;
TESE#6 WA sore#6=0;
SORE=83;
AC*5;RE*0;WA*1;

Limitation

1s, 1024KiB for each test case.

Hint

  • 样例#3的解释:可很轻易的发现,最终成绩不是所有测试点的得分和(在整数下)而是AC率的取整。所以单纯的将每个测试点的得分情况相加得出总成绩是不够合理的(除法的精度问题),为避免这一情况而导致的WA,特此提醒,请大家注意。
  • 对于50%的数据,是一般口算题(没有括号);
  • 对于100%的数据是非一般口算题(含有括号);
  • 对于100%的数据maxn不超过100;
  • 对于100%的数据我们保证自动生成的算式是完全符合数学整数四则运算的要求的,括号是匹配的,数据不超过longint范围内的
  • 在题目中,运算符'/'表示整除,而不是除;
  • 严格输出,行未没有多余空格