CF373B.Making Sequences is Fun
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
We'll define S(n) for positive integer n as follows: the number of the n's digits in the decimal base. For example, S(893) = 3, S(114514) = 6.
You want to make a consecutive integer sequence starting from number m (m, m + 1, ...). But you need to pay S(n)·k to add the number n to the sequence.
You can spend a cost up to w, and you want to make the sequence as long as possible. Write a program that tells sequence's maximum length.
我们定义正整数 n 的函数 S(n) 如下:S(n) 表示 n 在十进制下的位数。例如,S(893)=3,S(114514)=6。
你希望构造一个从整数 m 开始的连续整数序列(即 m,m+1,…)。但将数字 n 加入该序列需要支付代价 S(n)⋅k。
你的总花费不能超过 w,且你希望使该序列尽可能长。请编写一个程序,输出该序列的最大长度。
输入格式
The first line contains three integers w (1 ≤ w ≤ 1016), m (1 ≤ m ≤ 1016), k (1 ≤ k ≤ 109).
Please, do not write the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.
第一行包含三个整数 w(1≤w≤1016)、m(1≤m≤1016)、k(1≤k≤109)。
请注意,在 C++ 中读写 64 位整数时,不要使用 %lld 说明符。推荐使用 cin、cout 流或 %I64d 说明符。
输出格式
The first line should contain a single integer — the answer to the problem.
第一行应包含一个整数——该问题的答案。
输入输出样例
输入#1
9 1 1
输出#1
9
输入#2
77 7 7
输出#2
7
输入#3
114 5 14
输出#3
6
输入#4
1 1 2
输出#4
0
输入解题思路,AI测评打分。不知道怎么写?