北京师范大学第十六届程序设计竞赛决赛-重现赛-B题

一、题目原文

题目描述

ATG5是ATG系列最新作,游戏故事发生以美国洛杉矶及其周边地区为原型的城市Sos Lantos,是现实地区中的洛杉矶和南加州。制作单位拍摄了超过25万张相关照片,并且研究了人口调查和汽车销售数据,以建立游戏中的世界。

ATG系列历来都是以黑帮生活为背景的知名动作冒险游戏。主人公自然与黑道脱不了干系,在ATG5中游戏元素将会得到增强,加入了更加开放自由的世界,以故事驱动,以任务为准的游戏玩法和多人模式。故事主题聚焦金钱永不眠的南加利福尼亚。这次作品是有史以来最具活力的和最多元化的开放式世界,作为玩家可以反复进入三个角色的生活,玩交织在一起的所有内容。

ATG5这款游戏质量很高,但是外挂猖獗。。。

最近,三七开发现了一款神奇的外挂,可以让他在多个账号之间转移金钱。

神奇外挂的神奇不止于此,当他把一个账号的金钱转移到另一个账户时,原来账户里的金钱并不会减少!是不是很神奇?

三七开一共有n个账号,每一天他都会通过这个神奇外挂把第1个账号的金钱“转移”到第2个账号,再把第2个账号的金钱“转移”到第3个账号,……,再把第n-1个账号的金钱“转移”到第n个账号。

但是三七开忘了一件事情,游戏中金钱数量是有上限的,每当一个账号的金钱数大于等于1000000007(=109+7)时,这个账号的金钱数就会对109+7取模,即变成金钱数除以109+7的余数。尽管如此,三七开还是很开心地继续使用着他的神奇外挂,并且没有花账号里的一分金钱。

然而,在三七开使用了k天神奇外挂之后,B星公司(ATG5的发行公司)发现了他的开挂行为。B星公司对使用外挂行为非常仁慈,决定不对三七开进行封号处理,而是将三七开的所有账号的金钱数恢复至他开挂以前的数值。但服务器并没有关于那么久远的数据的存档,只有现在的金钱数的数据,以及检测到的开挂天数k。

你能帮助B星公司恢复三七开的账号数据吗?

输入描述:

第一行是一个正整数T(T ≤ 15),表示测试数据的组数,

对于每组测试数据,

第一行包含两个整数n(2 ≤ n ≤ 1000),k(0 ≤ k ≤ 100000000),表示账号个数和开挂天数,

第二行包含n个小于109+7的非负整数,第i个整数表示当前第i个账号的金钱数。

输出描述:

对于每组测试数据,输出一行,包含n个以空格分隔的非负整数(每个数范围小于10
9
+7,注意不要有行末空格),第i个整数表示开挂前第i个账号的金钱数。
示例1

输入

2
3 1
3 2 1
4 2
1 2 1 2

输出

3 1000000006 1000000006
1 0 1000000005 2

二、题意

猜你喜欢

转载自www.cnblogs.com/565261641-fzh/p/8970456.html