测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 ; }
上一题 下一题