A21237. 魔法卷轴
填空题
困难
知识点
题目描述
魔法卷轴
题目描述
你是一名卷轴师,准备制作法卷轴。制作卷轴时,总成本为 a×n + b×d(n),其中 n 是卷轴的数量,d(n) 是 n 的十进制位数。
你拥有 x 单位魔法材料。请问你最多能制作多少个卷轴?如果连一个卷轴都不能制作,输出 0。
输入格式
行三个整数 a、b、x。
输出格式
一个整数,表示答案。
输入样例1
18 395432867 10840610026输出样例1
404539679输入样例2
5 826766933 11100722310输出样例2
731963982输入样例3
1234 56789 314159265输出样例3
254309数据范围
1≤a、b≤10^9,1<=x<10^18。
参考答案
#include <iostream>
const int MAXN = 1e9 ;
int a , b ;
long long x ;
int digit(long long N)
{
int cnt = 0 ;
if(N == 0) return 1 ;
while(N > 0)
{
N /= 10 ;
cnt++ ;
}
return cnt ;
}
bool check(long long N)
{
return a * N + 1LL * b * digit(N) <= x ;
}
int main()
{
std::cin >> a >> b >> x ;
long long begin = 0 ;
long long end = MAXN ;
long long ans = 0 ;
while(begin <= end)
{
long long mid = begin + (end - begin) / 2 ;
if(check(mid))
{
begin = mid + 1 ;
ans = mid;
}
else
{
end = mid - 1 ;
}
}
std::cout << ans ;
}
上一题
下一题