Description

在算法竞赛中,题目一般保证了输入数据的合法性。然而在工程开发中,我们往往不期望程 序得到的输入都是合法的。
D 君正忙着向校内 OJ 添加题目,在写了第 233 个 val.cpp 之后,她的头脑中涌现出了这样 的想法。于是她决定出一道不需要写 val.cpp 的题。
输入两个整数,你需要做的就是输出她们的和。

Input

第一行一个正整数 T。
接下来 T 行,每行代表一组数据。
一组合法的数据包含由一个空格隔开的两个合法的十进制整数,行首和行尾不包含任何多余 的字符。
一个合法的十进制整数要么是 0,要么由一个可选的负号,一个 1 到 9 之间的数字,和若干 个 0 到 9 之间的数字顺序连接而成,并且这两个数字均在区间 [−2^31 , 2^31) 之内。
一组不合法的数据是一个不匹配以上规则的字符串。

Output

对于每组数据,如果该数据是合法的请输出一行一个整数代表答案,否则请输出 Input Error。

Sample Input

6
1 1
-1 -1
1 1
asdf

2147483648 0

Sample Output

2
-2
Input Error
Input Error
Input Error
Input Error

Data Constraint

Solution

  • 纯模拟题。。

  • 但是有很多细节,比赛时AC的人不多。。

  • 我就少考虑了两个地方:读入三个数,符号后面没有数字。

Code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cctype>
using namespace std;
typedef long long LL;
const int N=5e4;
int T;
LL up,low;
char s[N];
int main()
{freopen("aplusb.in","r",stdin);freopen("aplusb.out","w",stdout);scanf("%d\n",&T);up=1LL<<31,low=-up;while(T--){cin.getline(s,N);int n=strlen(s);if(!isdigit(s[0]) && s[0]!='-'){puts("Input Error");continue;}if(!isdigit(s[n-1])){puts("Input Error");continue;}int f1=0,f2=0;if(s[0]=='-') f1=1;int l1=0,l2=0;for(int i=f1;i<n;i++)if(isdigit(s[i])) l1++; else break;if(l1>10 || s[f1+l1]!=' ' || !l1){puts("Input Error");continue;}if(!isdigit(s[f1+l1+1]) && s[f1+l1+1]!='-'){puts("Input Error");continue;}if(s[f1+l1+1]=='-') f2=1;int pos=-1;for(int i=f1+l1+1+f2;i<n;i++)if(isdigit(s[i])) l2++; else{pos=i;break;}if(l2>10 || pos>=0 && pos<n-1 || !l2){puts("Input Error");continue;}if(l1==1 && s[f1]=='0' && f1){puts("Input Error");continue;}if(s[f1]=='0' && l1>1){puts("Input Error");continue;}if(l2==1 && s[f1+l1+1+f2]=='0' && f2){puts("Input Error");continue;}if(s[f1+l1+1+f2]=='0' && l2>1){puts("Input Error");continue;}LL x=0,y=0;for(int i=f1;i<f1+l1;i++) x=x*10+s[i]-'0';for(int i=f1+l1+1+f2;i<n;i++) y=y*10+s[i]-'0';if(f1) x=-x;if(f2) y=-y;if(x<low || x>=up){puts("Input Error");continue;}if(y<low || y>=up){puts("Input Error");continue;}printf("%lld\n",x+y);}return 0;
}

JZOJ 5820. 【NOIP提高A组模拟2018.8.16】 非法输入相关推荐

  1. JZOJ 5814. 【NOIP提高A组模拟2018.8.14】 树

    梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地选择一条走过去, ...

  2. 5814. 【NOIP提高A组模拟2018.8.14】 树(期望 + 倍增)

    5814. [NOIP提高A组模拟2018.8.14] 树 Problem 给定一棵nnn个点的树,m" role="presentation">mmm次询问,每次 ...

  3. jzoj 5814. 【NOIP提高A组模拟2018.8.14】 树(期望)

    Description 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中 ...

  4. jzoj 5814. 【NOIP提高A组模拟2018.8.14】树 dp+lca

    Description 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中 ...

  5. 5817. 【NOIP提高A组模拟2018.8.15】 抄代码

    Description J 君是机房的红太阳,每次模拟她总是 AK 虐场.然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 J 君 ...

  6. 5819. 【NOIP提高A组模拟2018.8.15】 大逃杀

    Description 自从 Y 君退役之后,她就迷上了吃鸡,于是她决定出一道吃鸡的题. Y 君将地图上的所有地点标号为 1 到 n,地图中有 n − 1 条双向道路连接这些点,通过一条 双向道路需要 ...

  7. 5778. 【NOIP提高A组模拟2018.8.8】没有硝烟的战争

    Description 被污染的灰灰草原上有羊和狼.有N只动物围成一圈,每只动物是羊或狼. 该游戏从其中的一只动物开始,报出[1,K]区间的整数,若上一只动物报出的数是x,下一只动物可以报[x+1,x ...

  8. jzoj5814 【NOIP提高A组模拟2018.8.14】 树 (树上期望,递归法列方程)

    题面 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地 选择一条 ...

  9. JZOJ5814. 【NOIP提高A组模拟2018.8.14】 树

    Description 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中 ...

最新文章

  1. (转载)机器学习知识点(十二)坐标下降法(Coordinate descent)
  2. windows下 网络命令(待续)
  3. javaweb学习总结(七):HttpServletResponse对象(一)
  4. Android事件处理之多点触摸与手势识别
  5. nginx+keepalived高可用性负载均衡
  6. webrtp官方demo运行
  7. 带你了解Typescript的14个基础语法
  8. 中国内镜下血管采集市场趋势报告、技术动态创新及市场预测
  9. blog推荐 - Sources of Insight
  10. 第五章 字符串字面量---一个特殊的数组
  11. 【笔记本Windows的两个ctrl键失效解决办法大全解】
  12. 新手焊接电路板_简单电路板的手工焊接步骤解析
  13. Pyton IO编程
  14. Android Studio中的keystore
  15. 第十章:项目沟通管理 - (10.0 项目沟通管理是什么)
  16. 如何打造自己有创意的平面设计灵魂作品
  17. [点分树] BZOJ 4372: 烁烁的游戏
  18. XML(3)XDocument与XmlDocument递归读取xml文件
  19. 微信公众号群发图文消息
  20. DOA_GAN的近似复现

热门文章

  1. Go 语言 练习 聊天室 01
  2. 高性能计算的线程模型:Pthreads 还是 OpenMP
  3. CentOS6 启动流程图文解剖 + 引导文件损坏处理方法
  4. 【笔记】基于Faster R-CNN的除草机器人杂草识别算法
  5. [云炬创业基础笔记]第九章企业的法律形态测试2
  6. 科大星云诗社动态20210417
  7. 科大星云诗社动态20210525
  8. Spark写Redis+Spark资源配置总结
  9. Python1:if / while / for...in / break /continue
  10. 离散时间系统的相位响应