HDU1073
来源:互联网 发布:淘宝有效评价 编辑:程序博客网 时间:2024/06/18 04:35
★★HDU1073 Online Judge
小明现在想做一个在线评判系统,他对于每个问题都有一个正确的输入文件和用户输入的文件。如果用户文件与正确文件完全一样的话,则输出"Accepted",如果两者之间只有空格(' '), 制表符('\t'), or 换行符('\n')的区别,则输出"Presentation Error"。否则输出"Wrong Answer"。
输入:第一行为T,表以下有T个实例。对于每个实例有两部分,先是正确的文件,后是用户的文件。他们都是以单独的一行"START"开始和以单独的一行"END"结束的。中间的每行都是文件内容。
文件最多5000个字符。
输出:输出在线评判系统的评判结果。
分析:直接用scanf一个一个字符的读入所有正确文件与用户文件的所有字符,并判断结尾。然后先依次判断正确文件与用户输入文件是否一样,否则判断是否格式不同,否则是wrong answer。
AC代码:
#include<cstdio>
#include<cstring>
using namespace std;
char str1[5000+100];//正确文件
char str2[5000+100];//用户文件
bool is_four(char c)//判断空格,制表符,换行符。
{
if(c==''||c=='\t'||c=='\n')
returntrue;
returnfalse;
}
int main()
{
int t;
while(scanf("%d%*c",&t)==1&&t)//实例个数
{
while(t--)//每个实例
{
//读入正确文件
charc;
for(int i=0; i<6; i++) //读开头的start与换行符
{
c = getchar();
}
inti=0;
while(1)//读正确文件+‘\n’+“END”+‘\n’
{
str1[i]=getchar();
if(str1[i]=='\n'&&i>=4)
{
if(str1[i-4]=='\n'&&str1[i-3]=='E'&&str1[i-2]=='N'&&str1[i-1]=='D')//判断结尾
{
break;
}
}
i++;
}
intlen1=i+1;//文件长度
//读入用户文件
for(int i=0; i<6; i++) //读开头的start与换行符
{
c = getchar();
}
i=0;
while(1)//读用户文件+‘\n’+“END”+‘\n’
{
str2[i]=getchar();
if(str2[i]=='\n'&&i>=4)
{
if(str2[i-4]=='\n'&&str2[i-3]=='E'&&str2[i-2]=='N'&&str2[i-1]=='D')
{
break;
}
}
i++;
}
intlen2=i+1;
boolaccepted=true;//两个文件完全相同
if(len1!=len2)accepted=false;
if(len1==len2)
{
for(int i=0;i<len1;i++)
if(str1[i]!=str2[i])
{
accepted=false;
break;
}
}
boolP_E=true;//仅格式错误
if(!accepted)
{
int i=0,j=0;
while(1)
{
while(i<len1&&is_four(str1[i]))i++;//找到下一个非‘ ’‘\t’‘\n’字符
while(j<len2&&is_four(str2[j]))j++;//找到下一个非‘ ’‘\t’‘\n’字符
if(i>=len1&&j>=len2)
break;
else if(i>=len1||j>=len2)
{
P_E=false;
break;
}
else if(str1[i]!=str2[j])
{
P_E=false;
break;
}
else//str1[i]==str2[j]
{
i++;
j++;
}
}
}
if(accepted)printf("Accepted\n");
elseif(P_E)printf("Presentation Error\n");
elseprintf("Wrong Answer\n");
}
}
return 0;
}
- HDU1073
- hdu1073
- HDU1073
- hdu1073
- hdu1073
- HDU1073:Online Judge
- hdu1073 Online Judge
- HDU1073 Online Judge
- HDU1073 Online Judge
- Online Judge hdu1073 字符串操作
- HDU1073 Online Judge【输入输出+字符串】
- hdu1073 Online Judge 一道字符串处理的水题,,wa了我一下午。。。这几天发生了点不寻常的事。
- PHP的logo为什么是大象
- css如何自动换行对于div,p等块级元素(转)
- opencv_tutorials2.4.8翻译(一)-Mat
- [教程] ICE中间件Windows VC6.0环境搭建
- linux的一种桌面
- HDU1073
- yuv播放器
- Linux内核模块导出后无法调用问题解决(模块间函数调用通讯)
- Python以管理员权限启动
- WPF 模拟UI 键盘录入
- uva 10617
- 解读WM_NOTIFY消息中的NMHDR结构
- Delphi StringGrid常用属性和常用操作
- 异常汇总