#P05035. 程序判分
程序判分
题目背景
程序的判分引擎会比较每个测试点用户程序运行结果和标准答案,比较时会忽略开始的多余空行、结束的多余空行、结束的多余空格和每行行末的空格,但不会忽略开始时的空格和行首的空格。如果发现用户程序运行结果和标准答案相同,就能得到该测试点的分数。
特别地,标准答案与用户程序输出的结果可能是以若干只包含空格的行开头,对于这些行,如果标准答案与用户程序输出的结果不能完全匹配,那么认为程序运行结果错误。
题目描述
给定每个测试点的标准答案和用户程序输出结果,计算输出用户测评得分。
输入格式
第 行是两个正整数 和 ,分别表示测试点数量和每个测试点分数。
接下来有 组输入,每组是测试点的标准答案和用户程序的输出结果,每组输入的格式如下:
- 标准答案以一行特定字符串
##STANDARD##
开始,用户程序的输出结果以一行特定字符串##OUTPUT##
开始。 - 每组第 行是独占一行的特定字符串
##STANDARD##
,接着有若干行内容,直到遇到独占一行的特定字符串##OUTPUT##
结束,中间的内容均是测试点的标准答案; - 紧接着,从独占一行的特定字符串
##OUTPUT##
开始,接着有若干行内容,直到遇到独占一行的特定字符串##STANDARD##
(或者表示所有输入结束的一行特定字符串##END##
)结束,中间的内容均是测试点的用户程序的输出结果;
最后一组测试点的用户程序的输出结果结束后,会有独占一行的特定字符串 ##END##
表示所有输入结束。
需要特别注意的是,标准答案和用户程序的输出结果都可能存在开始结束部分有空行、空格的情况。但标准答案忽略掉可以忽略的所有内容后,肯定还剩有内容。标准答案和用户程序的输出结果中都不会出现独占一行的字符串 ##STANDARD##
、##OUTPUT##
和 ##END##
。
输出格式
一个整数,就是测评得分。
输入输出样例
注意:在网页中不方便观察行首、行末的空格,可以将输入样例复制粘贴到文本编辑器(记事本/写字板)中,借助鼠标光标和方向按键仔细观察每行行首、行末的空格。
7 20
##STANDARD##
1 2 3 4 5
##OUTPUT##
1 2 3 4 5
##STANDARD##
5 4 3 2 1
1 2 3 4 5
##OUTPUT##
5 4 3 2 1
1 2 3 4 5
##STANDARD##
1 2 3
4 5 6
##OUTPUT##
1 2 3
4 5 6
##STANDARD##
1 2 3
##OUTPUT##
1
2
3
##STANDARD##
Hello World
Nice to meet you
##OUTPUT##
hello world
nice to meet you
##STANDARD##
1 2 3 4 5
##OUTPUT##
1 2 3 4 5
##STANDARD##
1 2 3 4 5
##OUTPUT##
1 2 3 4 5
##END##
60
说明/提示
样例说明:
在网页中不方便观察行首、行末的空格,可以将输入样例复制粘贴到文本编辑器(记事本/写字板)中,借助鼠标光标和方向按键仔细观察每行行首、行末的空格。
仅有第 这三组测试点标准答案和用户程序输出结果匹配成功。注意样例一些行中的空格:
第二组输出的第七行不是空行,有 个空格;第八行不是空行,有 个空格;其他无内容的行都是空行。
第三组输出的第一行不是空行,有 个空格。
第六组输入的第一行是空行,第二行有 个空格,第三行有 个空格;第六组输出的第一行有 个空格,第二行有 个空格。
第七组输入第一行是空行,第二行有 个空格,第三行有 个空格;第七组输出的第一行有 个空格,第二行是空行,第三行有 个空格。
👀️ 对于 的数据,,输入的每行长度不超过 ,只会出现英文字符,每个测试点的标准答案和用户程序输出结果行数都不会超过 。
👀️ 有 的数据,标准答案和用户程序输出的内容开始的若干行可能只包含空格。