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,…,xnx_1, x_2, \dots, x_n(满足 1≤x1≤x2≤⋯≤xn≤q1 \le x_1 \le x_2 \le \dots \le x_n \le q)。你还拥有两个整数 aa 和 bb(满足 a≤ba \le b 且 a⋅(n−1)<qa \cdot (n - 1) < q)。

你的任务是将序列 x1,x2,…,xnx_1, x_2, \dots, x_n 变换为某个序列 y1,y2,…,yny_1, y_2, \dots, y_n,使其满足:

  • 对所有 ii,有 1≤yi≤q1 \le y_i \le q;
  • 对所有 i=1,2,…,n−1i = 1, 2, \dots, n-1,有 a≤yi+1−yi≤ba \le y_{i+1} - y_i \le b。

该变换的代价定义为如下和式:

你的任务是选择满足上述约束的序列 yy,使得该变换代价最小。

输入格式

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).

第一行包含四个整数 nn、qq、aa、bb(2 ≤ n ≤ 60002 \le n \le 6000;1 ≤ q, a, b ≤ 1091 \le q, a, b \le 10^9;a⋅(n − 1) < qa\cdot(n - 1) < q;a ≤ ba \le b)。

第二行包含一个非递减的整数序列 x1, x2, ..., xnx_1, x_2, ..., x_n(1 ≤ x1 ≤ x2 ≤ ... ≤ xn ≤ q1 \le x_1 \le x_2 \le ... \le x_n \le 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.

第一行输出 nn 个实数——所求序列 y1, y2, …, yny_1,\ y_2,\ \dots,\ y_n(满足 1≤yi≤q1 \le y_i \le q;且 a≤yi+1−yi≤ba \le y_{i+1} - y_i \le b)。
第二行输出最小变换代价,即 。

若存在多个最优解,输出任意一个即可。

当答案的绝对误差或相对误差不超过 10−610^{-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测评打分。不知道怎么写?

首页