dungpham29803
Rating
-
Bài tập
1
Điểm
40
Rating #
-
Điểm #
29455
Giới thiệu
def solve(n, weights):
def backtrack(index, left_sum, right_sum):
# Nếu đã đặt hết các quả cân, đây là một cách xếp hợp lệ
if index == n:
return 1
count = 0
# Đặt quả cân vào đĩa bên phải
count += backtrack(index + 1, left_sum, right_sum + weights[index])
# Đặt quả cân vào đĩa bên trái nếu tổng bên trái không vượt quá tổng bên phải
if left_sum + weights[index] <= right_sum + weights[index]:
count += backtrack(index + 1, left_sum + weights[index], right_sum)
return count
# Không cần sắp xếp vì thứ tự đã ảnh hưởng đến cách xếp
return backtrack(0, 0, 0)
def main():
n = int(input())
weights = list(map(int, input().split()))
print(solve(n, weights))
if name == "main":
main()