CF1291A Even But Not Even
题目描述
我们将一个数定义为 ebne(even but not even,偶但不偶)当且仅当它的各位数字之和能被 $2$ 整除,但这个数本身不能被 $2$ 整除。例如,$13$、$1227$、$185217$ 是 ebne 数,而 $12$、$2$、$177013$、$265918$ 不是。如果你仍然不确定 ebne 数的定义,可以参考样例说明获得更多解释。
给定一个由 $n$ 位数字组成的非负整数 $s$。你可以删除其中一些数字(不要求连续),使得得到的数是 ebne。你不能改变数字的顺序,也就是说,删除后剩下的数字会自动拼接成一个新数。得到的数不能有前导零。你可以删除 $0$ 到 $n-1$ 个数字(即可以一个数字都不删,也可以删掉 $n-1$ 个)。
例如,若给定 $s=222373204424185217171912$,一种可能的操作方式是:$222373204424185217171912 \rightarrow 2237344218521717191$。$2237344218521717191$ 的各位数字之和为 $70$,能被 $2$ 整除,但 $2237344218521717191$ 本身不能被 $2$ 整除,因此它是 ebne 数。
请找出任意一种可以得到 ebne 数的方法。如果无法通过删除得到 ebne 数,请输出无法实现的结果。
输入格式
输入包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 3000$),表示原始数字的位数。
第二行包含一个由 $n$ 位数字组成的非负整数 $s$。
保证 $s$ 没有前导零,且所有测试用例中 $n$ 的总和不超过 $3000$。
输出格式
对于输入中的每个测试用例,输出如下格式的答案:
- 如果无法通过删除得到 ebne 数,输出 $-1$(不带引号);
- 否则,输出删除若干(可能为零)数字后得到的 ebne 数。若有多种答案,可以输出任意一种。注意,答案不能有前导零,也不能是空字符串。不要求删除的数字数量最少或最多。
说明/提示
在第一个样例中,$1227$ 已经是 ebne 数(因为 $1+2+2+7=12$,$12$ 能被 $2$ 整除,而 $1227$ 不能被 $2$ 整除),所以不需要删除任何数字。$127$ 和 $17$ 也是可行答案。
在第二个样例中,显然无法通过删除得到 ebne 数。
在第三个样例中,可以通过删除 $1$ 个数字得到许多 ebne 数,例如 $17703$、$77013$ 或 $17013$。$1701$ 或 $770$ 不是 ebne 数。$013$ 不是合法答案,因为有前导零。
解释:
- $1+7+7+0+3=18$,$18$ 能被 $2$ 整除,而 $17703$ 不能被 $2$ 整除,所以 $17703$ 是 ebne 数,$77013$ 和 $17013$ 也是;
- $1+7+0+1=9$,$9$ 不能被 $2$ 整除,所以 $1701$ 不是 ebne 数;
- $7+7+0=14$,$14$ 能被 $2$ 整除,但 $770$ 也能被 $2$ 整除,因此 $770$ 不是 ebne 数。
在最后一个样例中,给出了一种可能的答案。另一种可行答案是:$222373204424185217171912 \rightarrow 22237320442418521717191$(删除最后一位数字)。
由 ChatGPT 4.1 翻译