问题 4768 --巡回演唱会4768: 巡回演唱会★★★
时间限制: 1 Sec 内存限制: 128 MB
提交: 1 解决: 1
[提交][状态][命题人:]题目描述
n个城市依次排列成一个圈,城市顺时针从1到n编号,在第 i个城市,住着一个有ai(1=<i<=n)分钟歌唱技能的歌手。
每个歌唱家按顺时针访问n个城市,从他住的城市开始,每个城市办一个演唱会。
在每个城市,第i个歌手受到鼓舞新创作出一首持续ai分钟的歌,这首歌会加到他的歌唱技能中,他就可以在剩余的城市表演这首歌了。
所以,第i个歌手在第i个城市的演出持续ai分钟,在第i+1个城市持续2*ai分钟,在第((i+k)mod n+1)个城市持续(k+2)*ai分钟,在第((i+n-2)mod n+1)个城市持续
n*ai分钟。
给你一个数列b,bi表示第i个城市所有演唱会的总时长,输出可能的a数列(正整数)或判断这是不可能的。
输入
第一行包括一个数t(1=<t<=1000),表示数据组数。每组数据第一行为n(1=<n<=40000)表示城市数量,第二行为n个数b1,b2,......bn(1=<bi<=1000000000).
所有数据的n之和不超过200000.
输出
每组数据,如果没有合适的数列a,输出NO。否则,第一行输出YES,第二行输出数列a1,a2,......an(1=<ai<=1000000000),其中ai表示第i个歌手最初的歌唱技能。
如果有多个可行解,输出任意一种。
YES
3 1 3
YES
1
NO
YES
5 5 4 1 4 5
提示
样例1:第一个歌手在第一个城市表演3分钟,在第2个城市表演6分钟,在第3个城市表演9分钟。
第二个歌手在第一个城市表演3分钟,在第2个城市表演1分钟,在第3个城市表演2分钟。
第三个歌手在第一个城市表演6分钟,在第2个城市表演9分钟,在第3个城市表演3分钟。
来源
[提交][状态]