35 lines
780 B
Swift
35 lines
780 B
Swift
func solve() {
|
|
guard let N = Int(readLine() ?? ""),
|
|
let input = readLine()
|
|
else { return }
|
|
|
|
var val: [Int] = input.split(separator: " ").compactMap{Int($0)}
|
|
val.sort(by: <)
|
|
var minAbs = Int.max
|
|
var ans: [Int] = [0, 0, 0]
|
|
|
|
for fix in 0..<N-1 {
|
|
var (L, R) = (fix + 1, N-1)
|
|
|
|
while L < R {
|
|
let temp = val[fix] + val[L] + val[R]
|
|
|
|
if abs(temp) < minAbs {
|
|
minAbs = abs(temp)
|
|
ans = [val[fix], val[L], val[R]]
|
|
}
|
|
|
|
if temp > 0 {
|
|
R -= 1
|
|
}
|
|
else {
|
|
L += 1
|
|
}
|
|
}
|
|
}
|
|
|
|
print(ans.compactMap({String($0)}).joined(separator: " "))
|
|
}
|
|
|
|
solve()
|