CF280E.Sequence Transformation
NOI/NOI+/CTSC
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You've got a non-decreasing sequence _x_1, _x_2, ..., x__n (1 ≤ _x_1 ≤ _x_2 ≤ ... ≤ x__n ≤ q). You've also got two integers a and b (a ≤ b; a·(n - 1) < q).
Your task is to transform sequence _x_1, _x_2, ..., x__n into some sequence _y_1, _y_2, ..., y__n (1 ≤ y__i ≤ q; a ≤ y__i + 1 - y__i ≤ b). The transformation price is the following sum:
. Your task is to choose such sequence y that minimizes the described transformation price.
你有一个非递减序列 x1,x2,…,xn(满足 1≤x1≤x2≤⋯≤xn≤q)。你还拥有两个整数 a 和 b(满足 a≤b 且 a⋅(n−1)<q)。
你的任务是将序列 x1,x2,…,xn 变换为某个序列 y1,y2,…,yn,使其满足:
- 对所有 i,有 1≤yi≤q;
- 对所有 i=1,2,…,n−1,有 a≤yi+1−yi≤b。
该变换的代价定义为如下和式:

你的任务是选择满足上述约束的序列 y,使得该变换代价最小。
输入格式
The first line contains four integers n, q, a, b (2 ≤ n ≤ 6000; 1 ≤ q, a, b ≤ 109; a·(n - 1) < q; a ≤ b).
The second line contains a non-decreasing integer sequence _x_1, _x_2, ..., x__n (1 ≤ _x_1 ≤ _x_2 ≤ ... ≤ x__n ≤ q).
第一行包含四个整数 n、q、a、b(2 ≤ n ≤ 6000;1 ≤ q, a, b ≤ 109;a⋅(n − 1) < q;a ≤ b)。
第二行包含一个非递减的整数序列 x1, x2, ..., xn(1 ≤ x1 ≤ x2 ≤ ... ≤ xn ≤ q)。
输出格式
In the first line print n real numbers — the sought sequence _y_1, _y_2, ..., y__n (1 ≤ y__i ≤ q; a ≤ y__i + 1 - y__i ≤ b). In the second line print the minimum transformation price, that is,
.
If there are multiple optimal answers you can print any of them.
The answer will be considered correct if the absolute or relative error doesn't exceed 10 - 6.
第一行输出 n 个实数——所求序列 y1, y2, …, yn(满足 1≤yi≤q;且 a≤yi+1−yi≤b)。
第二行输出最小变换代价,即
。
若存在多个最优解,输出任意一个即可。
当答案的绝对误差或相对误差不超过 10−6 时,即视为正确。
输入输出样例
输入#1
3 6 2 2 1 4 6
输出#1
1.666667 3.666667 5.666667 0.666667
输入#2
10 100000 8714 9344 3378 14705 17588 22672 32405 34309 37446 51327 81228 94982
输出#2
1.000000 8715.000000 17429.000000 26143.000000 34857.000000 43571.000000 52285.000000 61629.000000 70973.000000 80317.000000 797708674.000000
输入解题思路,AI测评打分。不知道怎么写?