CF933B.A Determined Cleanup

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

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 p and k, find a polynomial f(x) with non-negative integer coefficients strictly less than k, whose remainder is p when divided by (x + k). That is, f(x) = q(x)·(x + k) + p, where q(x) is a polynomial (not necessarily with integer coefficients).

为了辞旧迎新,大扫除是必不可少的。

小汤米发现了一个古老的多项式,并通过对其取模另一个多项式的方式进行了“清理”。但现在他后悔这么做了……

给定两个整数 pp 和 kk,请找出一个多项式 f(x)f(x),其所有系数均为非负整数且严格小于 kk,且当 f(x)f(x) 除以 (x+k)(x + k) 时,余数为 pp。即满足

f(x)=q(x)⋅(x+k)+p,f(x) = q(x) \cdot (x + k) + p,

其中 q(x)q(x) 是某个多项式(其系数不一定是整数)。

输入格式

The only line of input contains two space-separated integers p and k (1 ≤ p ≤ 1018, 2 ≤ k ≤ 2 000).

输入仅包含一行,其中有两个以空格分隔的整数 pp 和 kk(1 ≤ p ≤ 10181 ≤ p ≤ 10^{18},2 ≤ k ≤ 2 0002 ≤ k ≤ 2\,000)。

输出格式

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 d — the number of coefficients in the polynomial.

In the second line print d space-separated integers _a_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 ≤ d - 1, and a__d - 1 ≠ 0.

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

如果这样的多项式不存在,则输出一个整数 −1-1;否则输出两行。

第一行输出一个非负整数 dd —— 多项式的系数个数。

第二行输出 dd 个用空格分隔的整数 a0, a1, …, ad−1a_0,\ a_1,\ \dots,\ a_{d-1},描述一个满足给定要求的多项式 。你的输出需满足对所有 0≤i≤d−10\le i\le d-1 都有 0≤ai<k0\le a_i<k,且 ad−1≠0a_{d-1}\ne 0。

若存在多个可行解,输出任意一个即可。

输入输出样例

  • 输入#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) = _x_6 + _x_5 + _x_4 + x = (_x_5 - x_4 + 3_x_3 - 6_x_2 + 12_x - 23)·(x + 2) + 46.

In the second example, f(x) = x_2 + 205_x + 92 = (x - 9)·(x + 214) + 2018.

在第一个例子中,f(x)=x6+x5+x4+x=(x5−x4+3x3−6x2+12x−23)⋅(x+2)+46f(x) = x^6 + x^5 + x^4 + x = (x^5 - x^4 + 3x^3 - 6x^2 + 12x - 23)\cdot(x + 2) + 46。

在第二个例子中,f(x)=x2+205x+92=(x−9)⋅(x+214)+2018f(x) = x^2 + 205x + 92 = (x - 9)\cdot(x + 214) + 2018。

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

首页