import Foundation
func DFS(_ L: Int, _ sum: Int) {
//sum이 토탈반값보다 크면 더이상 계산할 필요없으므로 리턴
if sum > total / 2 { return }
//트리 끝까지 도착하면 값 체크하기
if L == n {
if sum == total - sum {
found = true
return
}
} else {
//원소를 쓴다면 더하기, 안쓴다면 그냥 밑으로만 보내기
DFS(L + 1, sum + a[L])
DFS(L + 1, sum)
}
}
var n = 6
var a = [1, 3, 5, 6, 7, 10]
var total = a.reduce(0, +)
var found = false
func sol() {
DFS(0, 0)
print(found ? "Yes" : "No")
}
sol()
