CF478E.Wavy numbers
省选/NOI-
通过率:0%
时间限制:1.50s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A wavy number is such positive integer that for any digit of its decimal representation except for the first one and the last one following condition holds: the digit is either strictly larger than both its adjacent digits or strictly less than both its adjacent digits. For example, numbers 35270, 102, 747, 20 and 3 are wavy and numbers 123, 1000 and 2212 are not.
The task is to find the k-th smallest wavy number r that is divisible by n for the given integer values n and k.
You are to write a program that will find the value of r if it doesn't exceed 1014.
波浪数是指满足如下条件的正整数:在其十进制表示中,除首位与末位外,任意一位数字均严格大于其两个相邻数字,或严格小于其两个相邻数字。例如,35270、102、747、20 和 3 是波浪数,而 123、1000 和 2212 不是。
本题任务是:对给定的整数 n 和 k,找出第 k 小的、能被 n 整除的波浪数 r。
你需要编写一个程序,在 r≤1014 的前提下求出该 r 的值。
输入格式
The only line of input contains two integers n and k, separated by a single space (1 ≤ n, k ≤ 1014).
输入仅包含一行,其中有两个整数 n 和 k,以单个空格分隔(1 ≤ n, k ≤ 1014)。
输出格式
Your task is to output the only integer r — the answer to the given problem. If such number does not exist or it is larger than 1014, then print "-1" (minus one without the quotes) instead.
你的任务是输出唯一的整数 r —— 即该问题的答案。如果这样的数不存在,或者它大于 1014,则输出 \-1(不带引号的“-1”)。
输入输出样例
输入#1
123 4
输出#1
1845
输入#2
100 1
输出#2
-1
输入#3
97461 457
输出#3
1805270103
说明/提示
The values of the first four wavy numbers that are divisible by n for the first sample are: 492, 615, 738 and 1845.
第一个样例中,前四个能被 n 整除的波浪数的值为:492、615、738 和 1845。
输入解题思路,AI测评打分。不知道怎么写?