CF1614B.Divan and a New Project
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The company "Divan's Sofas" is planning to build n+1 different buildings on a coordinate line so that:
- the coordinate of each building is an integer number;
- no two buildings stand at the same point.
Let xi be the coordinate of the i-th building. To get from the building i to the building j, Divan spends ∣xi−xj∣ minutes, where ∣y∣ is the absolute value of y.
All buildings that Divan is going to build can be numbered from 0 to n. The businessman will live in the building 0, the new headquarters of "Divan's Sofas". In the first ten years after construction Divan will visit the i-th building ai times, each time spending 2⋅∣x0−xi∣ minutes for walking.
Divan asks you to choose the coordinates for all n+1 buildings so that over the next ten years the businessman will spend as little time for walking as possible.
公司“Divan’s Sofas”计划在一条数轴上建造 n+1 座互不相同的建筑,满足以下条件:
- 每座建筑的坐标均为整数;
- 任意两座建筑不能位于同一点。
设第 i 座建筑的坐标为 xi。从建筑 i 到建筑 j,Divan 需花费 ∣xi−xj∣ 分钟,其中 ∣y∣ 表示 y 的绝对值。
Divan 计划建造的所有建筑编号为 0 至 n。商人将居住在编号为 0 的建筑中,即“Divan’s Sofas”的新总部。在建成后最初的十年间,Divan 将访问第 i 座建筑 ai 次,每次往返均需步行 2⋅∣x0−xi∣ 分钟。
Divan 请你为全部 n+1 座建筑选定坐标,使得未来十年内商人步行所花费的总时间最少。
输入格式
Each test contains several test cases. The first line contains one integer number t (1≤t≤103) — the number of test cases.
The first line of each case contains an integer n (1≤n≤2⋅105) — the number of buildings that "Divan's Sofas" is going to build, apart from the headquarters.
The second line contains the sequence a1,a2,…,an (0≤ai≤106), where ai is the number of visits to the i-th building.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
每个测试包含若干测试用例。第一行包含一个整数 t(1≤t≤103),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示“Divan's Sofas”公司除总部外计划建造的楼栋数量。
第二行包含一个序列 a1,a2,…,an(0≤ai≤106),其中 ai 表示第 i 栋楼的访问次数。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, on the first line print the number T — the minimum time Divan will spend walking.
On the second line print the sequence x0,x1,…,xn of n+1 integers, where xi (−106≤xi≤106) is the selected coordinate of the i-th building. It can be shown that an optimal answer exists with coordinates not exceeding 106.
If there are multiple answers, print any of them.
对于每个测试用例,在第一行输出数字 T —— Divan 行走所需的最少时间。
在第二行输出由 n+1 个整数组成的序列 x0,x1,…,xn,其中 xi(−106≤xi≤106)表示第 i 座建筑物所选定的坐标。可以证明:存在一个最优解,其坐标值均不超过 106。
若存在多个答案,输出任意一个即可。
输入输出样例
输入#1
4 3 1 2 3 5 3 8 10 6 1 5 1 1 1 1 1 1 0
输出#1
14 2 4 1 3 78 1 -1 0 2 3 4 18 3 6 1 5 2 4 0 1 2
说明/提示
Let's look at the first example.
Divan will visit the first building a1=1 times, the second a2=2 times and the third a3=3 times. Then one of the optimal solution will be as follows:
- the headquarters is located in x0=2;
- x1=4: Divan will spend 2⋅∣x0−x1∣⋅a1=2⋅∣2−4∣⋅1=4 minutes walking to the first building;
- x2=1: Divan will spend 2⋅∣x0−x2∣⋅a2=2⋅∣2−1∣⋅2=4 minutes walking to the second building;
- x3=3: Divan will spend 2⋅∣x0−x3∣⋅a3=2⋅∣2−3∣⋅3=6 minutes walking to the third building.
In total, Divan will spend 4+4+6=14 minutes. It can be shown that it is impossible to arrange buildings so that the businessman spends less time.
Among others, x=[1,3,2,0], x=[−5,−3,−6,−4] are also correct answers for the first example.
我们来看第一个例子。
Divan 将分别访问第一栋楼 a1=1 次、第二栋楼 a2=2 次、第三栋楼 a3=3 次。此时,一种最优方案如下:
- 总部设在 x0=2;
- x1=4:Divan 前往第一栋楼需花费 2⋅∣x0−x1∣⋅a1=2⋅∣2−4∣⋅1=4 分钟;
- x2=1:Divan 前往第二栋楼需花费 2⋅∣x0−x2∣⋅a2=2⋅∣2−1∣⋅2=4 分钟;
- x3=3:Divan 前往第三栋楼需花费 2⋅∣x0−x3∣⋅a3=2⋅∣2−3∣⋅3=6 分钟。
总计,Divan 将花费 4+4+6=14 分钟。可以证明,不存在其他建筑位置安排方式能使该商人花费更少时间。
此外,对于第一个例子,x=[1,3,2,0]、x=[−5,−3,−6,−4] 等也是正确的答案。
输入解题思路,AI测评打分。不知道怎么写?