人品,有木有?
Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^
题目描述
新一届的山东理工大学ACM网络擂台赛就要开始啦!听说晋级的选手有机会参加现场赛拿奖呢!闻讯好多同学报了名。作为比赛的组织者和命题者,我们当然希望更多的同学能够加入到这样的竞赛中来,第一可以自知,第二可以知人,说白了就是知己知彼,看看你编程的水平在学校范围内算是哪个层次。
但是歪风时常有,今年特别多啊。就是有些孩子不听话,没有人品,把考试中作弊的歪风带到了比赛中来,影响了比赛的公平性。只想问一句:人品,有木有?
但我们也不是
傻子,大家应该知道管理员可以随时查阅参赛同学的代码的,另外我们也会百度。所以,有情况的同学们,我们知道,你们懂得。人品有问题的人是没有机会入选集
训队的,也是没有能力夺得冠军的。只希望大家能够正视这种不正之风,无论学什么都要用一颗诚挚的心去面对,严谨而不浮躁,不然大学上也白上,徒增了一些年
龄而已。
回归正题,我们是通过一个专门判断程序,来检测某些人的代码是否是相似甚至相同的,以及是否是跟网上的代码一样的。今天交给同学们的任务简单一些,只需要判断两段代码是否相同(相同的意思就是完全一样)就OK了,注意注释和空行不算在内。
输入
输入仅包含一组数据。两端代码,每段代码有多行,代码中可能有空格换行,每行代码长度不超过100个字符,每段代码不超过100行。两段代码用@@@@@@分割,数据保证代码中其他地方不会出现用来分隔的串@@@@@@,保证注释都是以//开始的独占一行的。
输出
只有一行。如果两段代码相同则输出Yes,否则输出No。
示例输入
//张三的代码
#include<stdio.h>
int main()
{
printf(“I’m Zhansan!\n”);
return 0;
}
@@@@@@
//李四的代码
#include<stdio.h> int main()
{ //不得不说李四同学,貌似没有改动什么。
printf(“I’m Zhansan!\n”); return 0;
}
示例输出
Yes Accepted的代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <queue>
#include <stack>
#include <math.h>
#include <algorithm> using namespace std; int main()
{ char s[150], t[15000]; char dd[15000];
memset(t, '\0', sizeof(t));
memset(dd, '\0', sizeof(dd));
gets(s);
while(strcmp (s, "@@@@@@")!=0 )
{ if(s[0]=='/' && s[1]=='/' )
{
gets(s);
}
else
{
strcat(t, s);
gets(s);
}
}
while( gets(s)!=NULL ) //最后由 Ctrl + Z键 结束输入!
{ if(s[0]=='/' && s[1]=='/' )
{
continue;
}
else
{
strcat(dd, s);
}
}
if(strcmp(t, dd)==0)
{
cout<<"Yes\n";
}
else
{
cout<<"No\n";
}
return 0;
}