#P05035. 程序判分

程序判分

题目背景

程序的判分引擎会比较每个测试点用户程序运行结果和标准答案,比较时会忽略开始的多余空行、结束的多余空行、结束的多余空格和每行行末的空格,但不会忽略开始时的空格和行首的空格。如果发现用户程序运行结果和标准答案相同,就能得到该测试点的分数。

特别地,标准答案与用户程序输出的结果可能是以若干只包含空格的行开头,对于这些行,如果标准答案与用户程序输出的结果不能完全匹配,那么认为程序运行结果错误。

题目描述

给定每个测试点的标准答案和用户程序输出结果,计算输出用户测评得分。

输入格式

11 行是两个正整数 nnmm,分别表示测试点数量和每个测试点分数。

接下来有 nn 组输入,每组是测试点的标准答案和用户程序的输出结果,每组输入的格式如下:

  1. 标准答案以一行特定字符串 ##STANDARD## 开始,用户程序的输出结果以一行特定字符串 ##OUTPUT## 开始。
  2. 每组第 11 行是独占一行的特定字符串 ##STANDARD## ,接着有若干行内容,直到遇到独占一行的特定字符串 ##OUTPUT## 结束,中间的内容均是测试点的标准答案;
  3. 紧接着,从独占一行的特定字符串 ##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

说明/提示

样例说明:

在网页中不方便观察行首、行末的空格,可以将输入样例复制粘贴到文本编辑器(记事本/写字板)中,借助鼠标光标和方向按键仔细观察每行行首、行末的空格。


仅有第 1261、2、6 这三组测试点标准答案和用户程序输出结果匹配成功。注意样例一些行中的空格:

第二组输出的第七行不是空行,有 33 个空格;第八行不是空行,有 66 个空格;其他无内容的行都是空行。

第三组输出的第一行不是空行,有 22 个空格。

第六组输入的第一行是空行,第二行有 22 个空格,第三行有 11 个空格;第六组输出的第一行有 22 个空格,第二行有 11 个空格。

第七组输入第一行是空行,第二行有 22 个空格,第三行有 11 个空格;第七组输出的第一行有 22 个空格,第二行是空行,第三行有 11 个空格。


👀️ 对于100%100\% 的数据,n,m100n,m \leq 100,输入的每行长度不超过 100100,只会出现英文字符,每个测试点的标准答案和用户程序输出结果行数都不会超过 10001000

👀️ 有 20%20\% 的数据,标准答案和用户程序输出的内容开始的若干行可能只包含空格。