CF933B.A Determined Cleanup

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

In order to put away old things and welcome a fresh new year, a thorough cleaning of the house is a must.

Little Tommy finds an old polynomial and cleaned it up by taking it modulo another. But now he regrets doing this...

Given two integers pp and kk , find a polynomial f(x)f(x) with non-negative integer coefficients strictly less than kk , whose remainder is pp when divided by (x+k)(x+k) . That is, f(x)=q(x)(x+k)+pf(x)=q(x)·(x+k)+p , where q(x)q(x) is a polynomial (not necessarily with integer coefficients).

输入格式

The only line of input contains two space-separated integers pp and kk ( 1<=p<=10181<=p<=10^{18} , 2<=k<=20002<=k<=2000 ).

输出格式

If the polynomial does not exist, print a single integer -1, or output two lines otherwise.

In the first line print a non-negative integer dd — the number of coefficients in the polynomial.

In the second line print dd space-separated integers a0,a1,...,ad1a_{0},a_{1},...,a_{d-1} , describing a polynomial fulfilling the given requirements. Your output should satisfy 0<=a_{i}<k for all 0<=i<=d10<=i<=d-1 , and ad10a_{d-1}≠0 .

If there are many possible solutions, print any of them.

输入输出样例

  • 输入#1

    46 2
    

    输出#1

    7
    0 1 0 0 1 1 1
    
  • 输入#2

    2018 214
    

    输出#2

    3
    92 205 1
    

说明/提示

In the first example, f(x)=x6+x5+x4+x=(x5x4+3x36x2+12x23)(x+2)+46f(x)=x^{6}+x^{5}+x^{4}+x=(x^{5}-x^{4}+3x^{3}-6x^{2}+12x-23)·(x+2)+46 .

In the second example, f(x)=x2+205x+92=(x9)(x+214)+2018f(x)=x^{2}+205x+92=(x-9)·(x+214)+2018 .

首页