0101-Chia tập hai con có tổng chênh lệch nhỏ nhất

View as PDF

Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 5M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C++, pypy3, Python

Cho một mảng gồm N số nguyên dương. Nhiệm vụ của bạn là chia N số này thành hai tập con sao cho chênh lệch tuyệt đối giữa tổng các phần tử của hai tập con này là nhỏ nhất có thể.

Input (Dữ liệu)

  • Dòng 1 chứa số nguyên N (1 \leq N \leq 100).
  • Dòng 2 chứa N số nguyên dương, mỗi số không vượt quá 100, cách nhau một dấu cách.

Output (Kết quả)

  • Giá trị chênh lệch tuyệt đối nhỏ nhất có thể giữa tổng hai tập con.

Subtasks (Ràng buộc)

  • Subtask 1 (50%): N \leq 20.
  • Subtask 2 (50%): N \leq 100.

Example

Ví dụ

Sample Input
4
1 6 11 5
Sample Output
1
Giải thích/ Note
  • Tổng tất cả các phần tử là 1 + 6 + 11 + 5 = 23.
  • Để chênh lệch nhỏ nhất, ta muốn tổng mỗi tập càng gần 23 / 2 = 11.5 càng tốt.
  • Ta có thể chia thành hai tập: S_1 = \{1, 11\} (tổng 12) và S_2 = \{6, 5\} (tổng 11).
  • Chênh lệch tuyệt đối là |12 - 11| = 1, đây là kết quả nhỏ nhất có thể.

Comments

There are no comments at the moment.