CF550C.Divisibility by Eight
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a non-negative integer n, its decimal representation consists of at most 100 digits and doesn't contain leading zeroes.
Your task is to determine if it is possible in this case to remove some of the digits (possibly not remove any digit at all) so that the result contains at least one digit, forms a non-negative integer, doesn't have leading zeroes and is divisible by 8. After the removing, it is forbidden to rearrange the digits.
If a solution exists, you should print it.
给你一个非负整数 n,其十进制表示最多包含 100 位数字,且不包含前导零。
你的任务是判断:在此情况下,是否可以删除其中若干位数字(也可以一位都不删除),使得剩余数字至少有一位、构成一个非负整数、不包含前导零,且该整数能被 8 整除。删除后不允许重新排列剩余数字的顺序。
如果存在这样的解,请输出该解。
输入格式
The single line of the input contains a non-negative integer n. The representation of number n doesn't contain any leading zeroes and its length doesn't exceed 100 digits.
输入仅包含一行,为一个非负整数 n。数 n 的表示中不包含任何前导零,且其长度不超过 100 位数字。
输出格式
Print "NO" (without quotes), if there is no such way to remove some digits from number n.
Otherwise, print "YES" in the first line and the resulting number after removing digits from number n in the second line. The printed number must be divisible by 8.
If there are multiple possible answers, you may print any of them.
如果无法通过从数字 n 中删除某些数字来得到满足条件的数,则输出 "NO"(不带引号)。
否则,第一行输出 "YES",第二行输出从数字 n 中删除若干数字后所得的数字。该输出的数字必须能被 8 整除。
若存在多个可能的答案,输出任意一个即可。
输入输出样例
输入#1
3454
输出#1
YES 344
输入#2
10
输出#2
YES 0
输入#3
111111
输出#3
NO
输入解题思路,AI测评打分。不知道怎么写?