作业帮 > 综合 > 作业

请各位懂的帮我提供下思路吧

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/03 00:25:20
请各位懂的帮我提供下思路吧
1008:抄袭的初步判定时间限制:1 Sec 内存限制:128 MB
提交:10 解决:4
[提交][状态][讨论版]题目描述TJGC Online Judge 有一套成熟、自动、高效、准确的抄袭判定系统.这个系统由若干部分组成,其中有一个部分叫做“初步判定”模块.
初步判定模块能够快速发现明显具有抄袭特征的代码提交,但是被初步判定模块怀疑的代码还不能最终确定该代码属于抄袭,而需要进一步对其处理.
这道题要求你实现初步判定模块的基本功能.
每组输入数据中,会给你两个提交记录,每个记录分别会给出“运行编号”、“用户”、“问题”、“结果”、“内存”、“耗时”、“语言”、“代码长度”、“提交时间”几项.
如果两个提交记录的“问题”编号相同、“结果”都是 Accepted(即“正确”)、“语言”相同、“代码长度”相同、“用户”不相同,那么初步判定模块将会怀疑这两个提交记录中存在抄袭.更具体地说,会怀疑时间上更晚提交的用户有抄袭.
输入
第一行为一个整数 T,表示一共有 T 组数据.然后是一个空行.
接下来的 T 组数据中,每组数据有两行,并以空行分隔.第一行是提交时间较晚的记录,第二行是提交时间较早的记录.你要根据问题描述中所说的方法,判断较晚提交的记录是否存在抄袭.
每个提交的格式是:“运行编号”、“用户”、“问题”、“结果”、“内存”、“耗时”、“语言”、“代码长度”、“提交时间”.其中各项均以空格分隔.其中,“提交时间”的格式是“年-月-日 时:分:秒”,“年”是 4 位数,“月”、“日”、“时”、“分”、“秒”分别是 2 位数,并且保证时间是合法的,保证第一个提交时间总是晚于第二个提交时间.其余各项的内容本身不含空格.
更详细的信息,请参考样例.
输出
如果你认为较晚提交的用户抄袭了较早提交的用户,请输出一行:“XXX might have copied the code of YYY.”,其中 XXX 是较晚提交代码的用户名,YYY 是较早提交代码的用户名.反之,请输出一行:“XXX might have not copied the code of YYY.”.
样例输入2
9441 Someone 7001 Accepted 1672 101 C++ 631 2002-01-04 12:21:12
8441 Another 7001 Accepted 1672 102 C++ 631 2002-01-04 12:06:58
9876 Sam 8001 Accepted 1794 4 C++ 123 2012-01-03 10:54:21
8765 Sam 8001 Accepted 1794 5 C++ 123 2012-01-01 10:06:32样例输出Someone might have copied the code of Another.
Sam might have not copied the code of Sam.提示
不要想得太多.
来源
euyuil
你这个判定方法存在问题,根据文中逻辑来说,如果初步判定没有抄袭,那么就直接通过了,根据判断条件来看,只要稍微修改下代码长度,即可绕过你的判定.例如A抄袭了B,但是A修改代码,加了变量b,让b自加了十次,那么你的初步判定就会判断没有抄袭,从而放过A.
你可以试试加入最长字符串匹配,反汇编等一些手段来判定,这样才有实际意义