CF1129B.Wrong Answer

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Consider the following problem: given an array aa containing nn integers (indexed from 00 to n1n-1 ), find max0lrn1lir(rl+1)ai\max\limits_{0 \leq l \leq r \leq n-1} \sum\limits_{l \leq i \leq r} (r-l+1) \cdot a_i . In this problem, 1n20001 \leq n \leq 2\,000 and ai106|a_i| \leq 10^6 .

In an attempt to solve the problem described, Alice quickly came up with a blazing-fast greedy algorithm and coded it. Her implementation in pseudocode is as follows:

<br></br><span class="tex-font-style-bf">function</span> find_answer(n, a)<br></br>    # Assumes n is an integer between 1 and 2000, inclusive<br></br>    # Assumes a is a list containing n integers: a[0], a[1], ..., a[n-1]<br></br>    res = 0<br></br>    cur = 0<br></br>    k = -1<br></br><span class="tex-font-style-bf">for</span> i = 0 <span class="tex-font-style-bf">to</span> i = n-1<br></br>        cur = cur + a[i]<br></br><span class="tex-font-style-bf">if</span> cur < 0<br></br>            cur = 0<br></br>            k = i<br></br>        res = max(res, (i-k)*cur)<br></br><span class="tex-font-style-bf">return</span> res<br></br><br></br>

Also, as you can see, Alice's idea is not entirely correct. For example, suppose n=4n = 4 and a=[6,8,7,42]a = [6, -8, 7, -42] . Then, find_answer(n, a) would return 77 , but the correct answer is 3(68+7)=153 \cdot (6-8+7) = 15 .

You told Alice that her solution is incorrect, but she did not believe what you said.

Given an integer kk , you are to find any sequence aa of nn integers such that the correct answer and the answer produced by Alice's algorithm differ by exactly kk . Note that although the choice of nn and the content of the sequence is yours, you must still follow the constraints earlier given: that 1n20001 \leq n \leq 2\,000 and that the absolute value of each element does not exceed 10610^6 . If there is no such sequence, determine so.

输入格式

The first and only line contains one integer kk ( 1k1091 \leq k \leq 10^9 ).

输出格式

If there is no sought sequence, print "-1".

Otherwise, in the first line, print one integer nn ( 1n20001 \leq n \leq 2\,000 ), denoting the number of elements in the sequence.

Then, in the second line, print nn space-separated integers: a0,a1,,an1a_0, a_1, \ldots, a_{n-1} ( ai106|a_i| \leq 10^6 ).

输入输出样例

  • 输入#1

    8
    

    输出#1

    4
    6 -8 7 -42
    
  • 输入#2

    612
    

    输出#2

    7
    30 -12 -99 123 -2 245 -300
    

说明/提示

The first sample corresponds to the example given in the problem statement.

In the second sample, one answer is n=7n = 7 with a=[30,12,99,123,2,245,300]a = [30, -12, -99, 123, -2, 245, -300] , in which case find_answer(n, a) returns 10981098 , while the correct answer is 17101710 .

首页