AT_past17_k.正しいチェックディジット

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的字符串 SS,由数字和 ? 组成。
请判断是否可以将每个 ? 替换为某个数字,使得下列值为 1010 的倍数。如果可以,请给出一种替换方案。

  • $\displaystyle \sum^{N}_{i=1} i \times $(将 SS 的第 ii 个字符视为一位整数)

输入格式

输入从标准输入读取,格式如下:

NN SS

输出格式

如果不存在满足条件的替换方案,输出一行 No。
否则,输出一种满足条件的替换方案,格式如下:

Yes TT

第一行输出 Yes。
第二行输出字符串 TT,它是将 SS 中的 ? 替换为数字后得到的字符串,并满足题目中的条件。

输入输出样例

  • 输入#1

    5
    935?0

    输出#1

    Yes
    93550
  • 输入#2

    5
    1?3?5

    输出#2

    No
  • 输入#3

    1
    0

    输出#3

    Yes
    0

说明/提示

样例解释 1

考虑将 935?0 的第 44 个字符 ? 替换成什么数字。

  • 如果第 44 个字符 ? 替换为 55,得到字符串 T=93550T=93550。
    • 1×9+2×3+3×5+4×5+5×0=501 \times 9 + 2 \times 3 + 3 \times 5 + 4 \times 5 + 5 \times 0 = 50,确实为 1010 的倍数。

或者,也可以将第 44 个字符 ? 替换为 00,得到 93500,也满足条件。

样例解释 2

1?3?5 中有两个 ?,一共有 100100 种替换方式,但没有任何一种可以满足题意。

样例解释 3

虽然字符串 0 中不包含任何 ?,但 1×0=01\times 0 = 0,本身就是 1010 的倍数。

数据范围

  • NN 满足 1≤N≤2×1051 \leq N \leq 2 \times 10^5。
  • SS 是一个长度为 NN 的、由数字和 ? 组成的字符串。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页