HDU 1073:Online Judge
来源:互联网 发布:淘宝百丽是正品吗 编辑:程序博客网 时间:2024/06/18 07:08
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1073
题目意思:
输入T,T组测试数据。
每组数据提供两个文件,每个文件以START开始,以END结束。
然后如果两个文件完全相等,输出Accepted
否则两个文件除去空格,换行符和tab键外完全相同,输出Presentation Error
否则输出 Wrong Answer
注意:
如果输入空串,记得保留换行符,
其次就是串之间有空格,不要用scanf读入,用gets
题目写的我好崩溃,写的代码也不知道错哪了一直Wa,改了好久AC了。
AC代码:
#include <iostream>#include <string.h>#include <stdio.h>#include <queue>#include <algorithm>#define INF 0x3f3f3f3fusing namespace std;char correct[50000]; ///正确的文件char submit[50000]; ///提交的文件char str[50000]; ///接收一个个字符串char c[50000]; ///存放除去空格,制表符,换行等符号的正确文件char s[50000]; ///存放除去空格,制表符,换行等符号的提交文件。int main(){ int T; scanf("%d",&T); getchar(); ///注意吞掉换行 while(T--) { strcpy(correct,""); ///两个字符串初始化为空 strcmp(submit,""); int len1 = 0; ///第一个文件的长度 while(gets(str)) { int len = strlen(str); if(len == 0) ///空串,则放入换行 correct[len1++] = '\n'; else { for(int i = len1; i < len1+len; i++) { correct[i] = str[i-len1]; } len1 = len1 + len; correct[len1] = '\n'; ///保存换行符 len1++; } if(strcmp(str,"END")==0) ///是END结束 break; } int len2 = 0; ///提交文件的长度 while(gets(str)) { int len = strlen(str); if(len == 0) ///空串加入换行即可 submit[len2++] = '\n'; else { for(int i = len2; i < len2+len; i++) { submit[i] = str[i-len2]; } len2 = len2 + len; submit[len2] = '\n'; ///保存换行符 len2++; } if(strcmp(str,"END") == 0) break; } if(len1 == len2) ///长度相等 { bool flag = true; for(int i = 0; i < len1; i++) { if(correct[i] != submit[i]) { flag = false; break; } } if(flag) ///两个字符串完全相等 printf("Accepted\n"); else ///否则去掉换行、制表符和空格再次比较 { int j = 0; for(int i = 0; i < len1; i++) { if(correct[i]==' ' || correct[i]=='\t' || correct[i]=='\n') continue; else c[j++] = correct[i]; } c[j] = '\n'; ///末尾加换行符 j = 0; for(int i = 0; i < len2; i++) { if(submit[i]==' ' || submit[i]=='\t' || submit[i]=='\n') continue; else s[j++] = submit[i]; } s[j] = '\n'; if(strcmp(s,c)==0) printf("Presentation Error\n"); else printf("Wrong Answer\n"); } } else { int j = 0; for(int i = 0; i < len1; i++) { if(correct[i]==' ' || correct[i]=='\t' || correct[i]=='\n') continue; else c[j++] = correct[i]; } c[j] = '\n'; j = 0; for(int i = 0; i < len2; i++) { if(submit[i]==' ' || submit[i]=='\t' || submit[i]=='\n') continue; else s[j++] = submit[i]; } s[j] = '\n'; if(strcmp(s,c)==0) printf("Presentation Error\n"); else printf("Wrong Answer\n"); } } return 0;}
阅读全文
0 0
- hdu 1073 Online Judge
- HDU 1073 Online Judge
- HDU 1073 Online Judge
- HDU 1073 Online Judge
- hdu 1073 Online Judge
- HDU 1073 Online Judge
- hdu 1073 Online Judge
- hdu 1073 Online Judge
- hdu 1073 Online Judge
- hdu 1073 Online Judge
- hdu 1073 Online Judge
- hdu 1073 Online Judge
- HDU 1073 Online Judge
- HDU 1073 Online Judge
- hdu 1073 Online Judge
- HDU 1073 Online Judge
- hdu 1073 Online Judge
- HDU 1073 Online Judge
- 机器学习——特征工程之流形学习
- C#生成Code128条形码
- 多通道(以rgb为例)图象输入的卷积计算过程
- win7下 EPLAN新建项目出现“一个内部错误”的解决方法
- A Simple Math Problem HDU
- HDU 1073:Online Judge
- 【04】框架学习—Hibernate中处理一对多关系与多对多关系
- Java运行时内存划分
- HDU
- java集合判断出现空指针异常
- read()/write()的生命旅程-系列
- Codeforces Round #393 (Div. 2)
- (M)DFS: 337. House Robber III
- HDU 5578 Friendship of Frog 暴力