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 不是。

本题任务是:对给定的整数 nn 和 kk,找出第 kk 小的、能被 nn 整除的波浪数 rr。

你需要编写一个程序,在 r≤1014r \leq 10^{14} 的前提下求出该 rr 的值。

输入格式

The only line of input contains two integers n and k, separated by a single space (1 ≤ n, k ≤ 1014).

输入仅包含一行,其中有两个整数 nn 和 kk,以单个空格分隔(1 ≤ n, k ≤ 10141 \leq n, k \leq 10^{14})。

输出格式

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.

你的任务是输出唯一的整数 rr —— 即该问题的答案。如果这样的数不存在,或者它大于 101410^{14},则输出 \-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.

第一个样例中,前四个能被 nn 整除的波浪数的值为:492、615、738 和 1845。

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

首页