#HK5469. 「UOI 2017 Stage 4 Day1」保险箱

「UOI 2017 Stage 4 Day1」保险箱

题目描述

题目译自 Ukrainian Olympiads in Informatics 2017 Stage 4 Day1 T1. Сейф

奥林匹亚国的银行邀请了佩特里克来测试他们最新的安全系统。他的任务是通过破解以下密码,尽快打开一个保险箱。保险箱的中央圆盘周围写着 pp 个自然数。为了打开保险箱,必须将所有这些数字替换为另外一些自然数,使得每个新数字与其后的 q1q-1 个新数字之和,等于对应的原始数字。例如,如果保险箱圆盘上标明的数字是 $$ 并且 q=5q=5,那么需要设置的数字就是 $$,这样保险箱就会打开!

8hhcl458sl2nheobb61k3hq4h0.png

请编写一个程序,根据保险箱的初始配置和数字 qq,还原出一种能够打开保险箱的可能配置。

输入格式

输入文件的第一行包含两个自然数 ppqq (1qp104)(1 \leq q \leq p \leq 10^4)ppqq 均为质数。

下一行包含 pp 个不超过 10910^9 的自然数——保险箱的初始配置。

输出格式

在文件的一行中输出 pp 个不超过 10910^9 的自然数,这些数字可以打开保险箱。保证至少存在一种这样的配置。如果存在多种可能的答案,输出任意一种即可。

7 5
11 12 11 9 9 9 9

1 2 3 2 3 2 1

数据范围与提示

  • 对于 30%30\% 的数据,p7p \leq 7,存在一个答案,其中所有目标数字均 7\leq 7
  • 对于 60%60\% 的数据,p500p \leq 500,存在一个答案,其中所有目标数字均 500\leq 500