CF1225C.p-binary

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Vasya will fancy any number as long as it is an integer power of two. Petya, on the other hand, is very conservative and only likes a single integer pp (which may be positive, negative, or zero). To combine their tastes, they invented pp -binary numbers of the form 2x+p2^x + p , where xx is a non-negative integer.

For example, some 9-9 -binary ("minus nine" binary) numbers are: 8-8 (minus eight), 77 and 10151015 ( 8=209-8=2^0-9 , 7=2497=2^4-9 , 1015=21091015=2^{10}-9 ).

The boys now use pp -binary numbers to represent everything. They now face a problem: given a positive integer nn , what's the smallest number of pp -binary numbers (not necessarily distinct) they need to represent nn as their sum? It may be possible that representation is impossible altogether. Help them solve this problem.

For example, if p=0p=0 we can represent 77 as 20+21+222^0 + 2^1 + 2^2 .

And if p=9p=-9 we can represent 77 as one number (249)(2^4-9) .

Note that negative pp -binary numbers are allowed to be in the sum (see the Notes section for an example).

输入格式

The only line contains two integers nn and pp ( 1n1091 \leq n \leq 10^9 , 1000p1000-1000 \leq p \leq 1000 ).

输出格式

If it is impossible to represent nn as the sum of any number of pp -binary numbers, print a single integer 1-1 . Otherwise, print the smallest possible number of summands.

输入输出样例

  • 输入#1

    24 0
    

    输出#1

    2
    
  • 输入#2

    24 1
    

    输出#2

    3
    
  • 输入#3

    24 -1
    

    输出#3

    4
    
  • 输入#4

    4 -7
    

    输出#4

    2
    
  • 输入#5

    1 1
    

    输出#5

    -1
    

说明/提示

00 -binary numbers are just regular binary powers, thus in the first sample case we can represent 24=(24+0)+(23+0)24 = (2^4 + 0) + (2^3 + 0) .

In the second sample case, we can represent 24=(24+1)+(22+1)+(20+1)24 = (2^4 + 1) + (2^2 + 1) + (2^0 + 1) .

In the third sample case, we can represent 24=(241)+(221)+(221)+(221)24 = (2^4 - 1) + (2^2 - 1) + (2^2 - 1) + (2^2 - 1) . Note that repeated summands are allowed.

In the fourth sample case, we can represent 4=(247)+(217)4 = (2^4 - 7) + (2^1 - 7) . Note that the second summand is negative, which is allowed.

In the fifth sample case, no representation is possible.

首页