整数校验器
题目描述
有些时候需要解决这样一类问题:判断一个数 $x$ 是否合法。
$x$ 合法当且仅当其满足如下条件:
- $x$ 格式合法,一个格式合法的整数要么是 $0$,要么由一个可加可不加的负号,一个 $1$ 到 $9$ 之间的数字,和若干个 $0$ 到 $9$ 之间的数字依次连接而成。
- $x$ 在区间 $[l,r]$ 范围内(即 $l \le x \le r$)。
你需要实现这样一个校验器,对于给定的 $l, r$,多次判断 $x$ 是否合法。
输入输出格式
输入格式
第一行三个整数 $l,r,T$,表示校验器的校验区间为 $[l,r]$,以及需要校验的 $x$ 的个数。
接下来 $T$ 行,每行一个 $x$,表示要校验的数,保证 $x$ 长度至少为 $1$ 且仅由 '0'~'9' 及 '-' 构成,且 '-' 只会出现在第一个字符。
输出格式
输出共 $T$ 行,每行一个整数,表示每个 $x$ 的校验结果。
校验结果规定如下:$0$ 表示 $x$ 合法;$1$ 表示 $x$ 格式不合法;$2$ 表示 $x$ 格式合法且不在 $[l,r]$ 区间内。
输入输出样例
输入样例 #1
-3 3 4
0
00
-0
100000000000000000000
输出样例 #1
0
1
1
2
说明
对于 $100\%$ 的数据,$0 \le T \le 512$,$l,r$ 在 $64$ 位有符号整型范围内(即 $-2^{63}\le l \le r \le 2^{63}-1$)。
保证输入文件大小不超过 $\text{128KB}$。数据在 linux 下生成,没有 '\r' 字符。
以下为部分特殊限制(互不包含):
- 有 $5\%$ 的数据,$T=0$。
- 有 $25\%$ 的数据,保证 $x$ 格式一定合法。
- 有 $30\%$ 的数据,保证如果 $x$ 格式合法,那么 $x$ 一定在 $64$ 位有符号整形范围内。
其中有一个不计分的hack测试点,用于考察long long边界数字的判断,如果是100分UnAC的话,那么可能是你没有考虑这一种情况。