```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
a := make([]int, n)
for i := 0; i < n; i++ {
scanner.Scan()
a[i], _ = strconv.Atoi(scanner.Text())
}
type pair struct {
x, y int
}
history := make([]pair, 5000001)
for i := 0; i < n; i++ {
for j := i + 1; j < n; j++ {
sum := a[i] + a[j]
p := history[sum]
if p.x == 0 {
history[sum] = pair{i + 1, j + 1}
} else {
if p.x != i+1 && p.x != j+1 && p.y != i+1 && p.y != j+1 {
fmt.Fprintln(writer, "YES")
fmt.Fprintln(writer, p.x, p.y, i+1, j+1)
return
}
}
}
}
fmt.Fprintln(writer, "NO")
}
```