trang chủ / bài tập / wrongans

Đáp Án Sai

Đề bài

Mô tả

Xét bài toán sau: cho một mảng a gồm n số nguyên (đánh chỉ số từ 0 đến n1), hãy tìm

max0lrn1((rl+1)·lirai).

Trong bài toán đó có ràng buộc 1n2000|ai|106.

Để giải bài toán này, An nghĩ ra một thuật toán tham lam rất nhanh và cài đặt như mã giả dưới đây:

function find_answer(n, a)
    # Giả sử n là số nguyên trong đoạn [1, 2000]
    # Giả sử a là danh sách gồm n số nguyên: a[0], a[1], ..., a[n-1]
    res = 0
    cur = 0
    k = -1
    for i = 0 to i = n-1
        cur = cur + a[i]
        if cur < 0
            cur = 0
            k = i
        res = max(res, (i-k)*cur)
    return res

Thuật toán của An không phải lúc nào cũng đúng. Ví dụ với n=4a=[6,8,7,42] thì find_answer trả về 7, nhưng đáp án đúng là 3·(68+7)=15.

Cho một số nguyên k, hãy tìm bất kỳ dãy a gồm n số nguyên sao cho đáp án đúng và đáp án mà thuật toán của An trả về chênh lệch nhau đúng bằng k (tức là đáp án đúng trừ đi đáp án của An bằng k). Dãy bạn đưa ra vẫn phải thỏa mãn các ràng buộc ban đầu: 1n2000|ai|106. Nếu không tồn tại dãy như vậy, hãy cho biết điều đó.

Dữ liệu vào

Một dòng duy nhất chứa một số nguyên k.

Dữ liệu ra

Nếu không tồn tại dãy cần tìm, in ra 1.

Ngược lại, dòng đầu in ra một số nguyên n (1n2000) là số phần tử của dãy. Dòng thứ hai in ra n số nguyên cách nhau bởi dấu cách: a0,a1,,an1 (|ai|106).

Nếu có nhiều đáp án, in ra bất kỳ đáp án hợp lệ nào.

Ràng buộc

  • 1k109

Ví dụ

Input Output Giải thích
8 2
-1 10
Với dãy [1,10]: đáp án đúng là 2·(1+10)=18, còn thuật toán của An trả về 10. Chênh lệch 1810=8.
612 2
-1 614
Với dãy [1,614]: đáp án đúng là 2·(1+614)=1226, thuật toán của An trả về 614. Chênh lệch 1226614=612.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0