P3692 夏幻的考试
题目背景
夏之幻是软件工程系的大神,学校把举办考试的任务交给她了。
题目描述
某大学软工专业要举办一场笔试,学生们要在机读答题卡上填写答案来进行答题。学校把机读卡识别任务交给了夏之幻,但是这套系统的需求太复杂了,她还要做自己的其他项(you)目(xi),所以她想让你来帮忙实现一部分功能。
试卷分卷头,单选题两部分。
夏幻大神已经写好了识别程序,因此卷头和答案将直接以数字信息的形式呈现给你,你要实现下面几个功能:
需要处理 $T$ 张试卷,按顺序检查下列选项。
1.检查考号的填写是否准确。
输入信息的格式:
一行,一个 $16$ 位无符号二进制数id。表示考生的考号为id,正确的考号范围在十进制下是 $1 \sim 10000$。
如果考号有错误,输出一行 `Wrong ID` 并结束对这张试卷的处理(剩下两个选项的数据依然要读入,但不输出任何内容)。如果考号正确,输出一行,`ID: `+ 一个整数,表示考号的十进制形式。
无需考虑考号是否重复,只要在范围内均为正确。
2.检查试卷类型是否正确。
输入信息格式:
一行,两个整数,中间无分隔,只能是 $0$ 或者 $1$。第一个整数表示试卷类型A是否被涂黑($0$ 表示未涂黑,$1$ 表示涂黑),第二个整数表示试卷类型B是否涂黑。其实试卷类型可以由二进制考号的最后一位得到,$0$ 表示A卷,$1$ 表示B卷,你只需要检查考生填涂的是否正确。
如果考生将试卷类型正确填涂(填涂且只填涂了正确的那一项),输出一行 `Type Correct`,否则输出一行 `Type Incorrect`。无论试卷类型是否填涂正确,你还需要接着处理这张试卷。
3.给单选题打分。
单选题的数量 $n$ 和标准答案将会在录入第一张试卷前给出。
考生答案的输入格式:
$n$ 行,每行 $4$ 个整数,中间无分隔。每个整数是 $0$ 或 $1$。
按顺序分别代表 $A,B,C,D$ 是否被涂黑($0$ 表示未涂黑,$1$ 表示涂黑)。考生回答正确当且仅当该题正确答案的位置被涂黑,且错误答案的位置未被涂黑。
输出一行,一个四舍五入到小数点后 $1$ 位的浮点数,表示考生的得分,满分为 $100$ 分,每个题的分数相同。
输入格式
第一行两个整数 $T$、$n$,空格分开,含义见题目描述。
接下来一行一个字符串 $s$,长度为 $n$,每个字符是大写字母 $A,B,C,D$ 中的一个,第 $i$ 个字符表示单选题 $i$ 的答案。
接下来 $T \times (n+2)$ 行含有 $T$ 组信息,表示每张试卷的内容,格式见题目描述。
输出格式
对于每张试卷,输出评判结果,格式见题目描述。两张试卷的评判结果之间空一行。
说明/提示
对于100%的数据
$1 \le T \le 1000$
$1 \le n \le 50$
注意:
1.请在最后一个试卷处理完后也加上一个换行
2.由于win系统和linux系统换行的不同,建议不要使用scanf读入char