Phân tập

Xem dạng PDF

Gửi bài giải


Điểm: 0,31 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho ~N~ người ~\left(2 \leq N \leq 32\right)~, mỗi người có một số ~a_{i}~ ~\left(1 \leq a_i \leq 10^9\right)~ được gọi là độ tin cậy.

Cần phân chia ~n~ người này vào ~2~ tập sao cho:

  • Mỗi người thuộc đúng một tập.
  • Chênh lệch tổng độ tin cậy của ~2~ phần là bé nhất.

Input

Dòng đầu chứa số nguyên ~N~.

Dòng tiếp theo chứa ~N~ số: số thứ ~i~ là độ tin cậy của người thứ ~i~.

Output

Ghi ra hai số ~u~ và ~v~ với ~u~ là độ chênh lệch nhỏ nhất và ~v~ là số cách phân chia

Sample Input

5
1 5 6 7 8

Sample Output

1 3

Note

Độ chênh lệch ít nhất của ~2~ phần là ~1~.

Có ~3~ cách phân chia nhóm ~1~ là ~(3,5)~, ~(1,3,4)~ và ~(1,2,5)~


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    trieuyanglake_1  đã bình luận lúc 11, Tháng 4, 2023, 7:08

    dạ mình có code thử bài này bằng bitmask mà sai ở test 21 không biết sai ở đâu mong mọi người chỉ , cảm ơn ạ https://ideone.com/TiDPD5