AC coding

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 1 总提交人数: 2

题目描述

小C同学对我们所使用的OJ系统十分感兴趣,他很好奇OJ系统是如何判题的,由于不太会编程,所以小C只好找到了聪明的你,请你帮他实现一个简易的判题程序。

请你实现一个简易的OJ评测程序,给出每道题目测试点的标准答案和用户所提交程序的输出结果,你需要评判以下三种情况:(为简化要求,规定每个测试点的标准答案和用户的输出均为一些整数,即不出现字母、字符等)

  • Accepted:用户输出与标准答案完全一致(行数相同,每行对应相等)

  • Presentation Error:输出的结果完全正确(数字的值和个数),但分隔符(即换行'\n',空格' ',回车'\r'和制表符'\t')的种类,数量或者顺序不一致。注意:在本题中,行尾出现多余的空格也算作错误,除非标准答案行尾也有相同数量的空格。

  • Wrong Answer:一切不符合前两种类型的情况,即用户输出的数字个数数值与标准答案不同。

给出每个测试点的标准输出和用户的输出,请你比对二者并给出评测结果。

注:本题中对PE的规定与实际的accoding OJ判题机制不一定完全相同

输入格式

输入数据的第一行为两个整数$m$和$n$,中间以一个空格隔开,分别为标准答案和用户输出的行数。

而后为$m+n$行,前$m$行是标准答案,后$n$行是用户提交的程序输出。每行包括数字0-9,空格' ',制表符'\t'等。

每行的末尾都一定有'\n',包括测试数据的最后一行!

输出格式

一共一行一个字符串,为评测反馈结果。

输入样例

样例1

3 3
2
1 2 3
2 3 4
2
1 2 3
2 3 4

样例2

1 1
1 2 3 4 5
1 2 3 4 5 

样例3

1 1
100
    100

样例4

2 1
3
2
3 2

样例5

1 1
1 26
12 5

输出样例

样例1

Accepted

样例2

Presentation Error

样例3

Presentation Error

样例4

Presentation Error

样例5

Wrong Answer

样例说明:第2组样例的用户输出(样例最后一行)比标准答案(样例第二行)末尾多一个空格,因此判为PE。

数据范围与约定

标准输出和用户输出均不超过100行,每行不超过1000个字符(末尾的换行符在此处计入)。每个整数不一定intlong long范围内。(不要试图用intlong long数组存下输出中的每个整数)

所有的标准答案和用户输出只包括数字(0-9)和分隔符(空格' ',换行符'\n',回车符'\r'和制表符'\t')

提示

  1. 请用gets或者fgets函数读取整行的字符串。(两者可以都试试,体会一下区别)
  2. 读完第一行的整数后记得用while (getchar() != '\n');或者gets(laji);清除残留的换行符。
  3. 注意行尾可能有'\r'
  4. 字符数组长度别再只开1000整了,绝对过不了的,多开几个元素没坏处(给'\r', '\n'还有字符串末尾的'\0'的位置留了吗?)

在本题中PE的本质就是每个数之间间隔的分隔符不同,可以考虑将两个数之间无论多少个分隔符都当做一个空格处理(存入新的字符串中),如果标准答案和用户输出完全一致且没有AC即可判定为PE。(思考:将分隔符全滤掉直接拼接数字行不行?)

AUTHOR: 董翰元

相关推荐