AT_arc060_b.[ABC044D] 桁和

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于大于等于 22 的整数 bb 以及大于等于 11 的整数 nn,定义函数 f(b,n)f(b,n) 如下:

  • 当 n<bn < b 时,f(b,n)=nf(b,n) = n;
  • 当 n≥bn \geq b 时,f(b,n)=f(b, floor(n/b))+(n mod b)f(b,n) = f(b,\,\mathrm{floor}(n / b)) + (n \bmod b)。

这里,floor(n/b)\mathrm{floor}(n / b) 表示不超过 n/bn / b 的最大整数,n mod bn \bmod b 表示 nn 除以 bb 的余数。

直观来说,f(b,n)f(b,n) 就是将 nn 用 bb 进制表示时各位数字之和。例如:

  • f(10, 87654)=8+7+6+5+4=30f(10,\,87654) = 8 + 7 + 6 + 5 + 4 = 30;
  • f(100, 87654)=8+76+54=138f(100,\,87654) = 8 + 76 + 54 = 138。

给定整数 nn 和 ss。请判断是否存在大于等于 22 的整数 bb 使得 f(b,n)=sf(b,n) = s。如果存在,请求出满足条件的最小 bb。

输入格式

输入以如下格式从标准输入读入:

nn ss

输出格式

如果存在大于等于 22 的整数 bb 满足 f(b,n)=sf(b,n) = s,请输出最小的这样的 bb。如果不存在,请输出 -1。

输入输出样例

  • 输入#1

    87654
    30

    输出#1

    10
  • 输入#2

    87654
    138

    输出#2

    100
  • 输入#3

    87654
    45678

    输出#3

    -1
  • 输入#4

    31415926535
    1

    输出#4

    31415926535
  • 输入#5

    1
    31415926535

    输出#5

    -1

说明/提示

限制条件

  • 1≤n≤10111 \leq n \leq 10^{11}
  • 1≤s≤10111 \leq s \leq 10^{11}
  • n, sn,\,s 均为整数。

由 ChatGPT 4.1 翻译

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

首页