Ngọc ngà

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 900 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trong một vương quốc nọ, nhà vua đang sở hữu một bộ sưu tập gồm \(n\) viên ngọc quý, mỗi viên có một giá trị tâm linh riêng biệt. Để củng cố quyền lực của mình, nhà vua muốn chọn ra một nhóm gồm ít viên ngọc nhất có thể, sao cho tổng giá trị của nhóm ngọc này phải lớn hơn tổng giá trị của tất cả các viên ngọc còn lại trong bộ sưu tập.

Hãy giúp nhà vua xác định số lượng viên ngọc tối thiểu cần chọn để đạt được mục tiêu "cán cân quyền lực" này.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(1 \le n \le 10^5\)) là số lượng viên ngọc.
  • Dòng thứ hai chứa \(n\) số nguyên không âm \(a_1, a_2, \dots, a_n\) (\(0 \le a_i \le 10^9\)) lần lượt là giá trị của từng viên ngọc.

Output

  • Một số nguyên duy nhất là số lượng viên ngọc ít nhất cần chọn.

Example

Test 1

Input
4
3 1 7 1
Output
1
Note

Nhóm ngọc nhỏ nhất có thể chọn là \(\{7\}\). Tổng giá trị của nhóm này là \(7\), lớn hơn tổng các viên còn lại (\(3 + 1 + 1 = 5\)). Vậy chỉ cần chọn \(1\) viên.

Test 2

Input
3
2 1 2
Output
2
Note

Nhóm ngọc nhỏ nhất có thể chọn là \(\{2, 1\}\) hoặc \(\{2, 2\}\). Tổng giá trị của nhóm \(\{2, 1\}\)\(3\), lớn hơn viên còn lại là \(2\). Vậy cần chọn ít nhất \(2\) viên.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(n \le 10^3\).
  • Subtask \(2\) (\(60\%\) số điểm): \(n \le 10^5\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.