← Home
```go
package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	buf := make([]byte, 1024*64)
	var pos, max int
	
	nextByte := func() byte {
		if pos >= max {
			n, err := os.Stdin.Read(buf)
			if err != nil && err != io.EOF {
				return 0
			}
			if n == 0 {
				return 0
			}
			pos = 0
			max = n
		}
		b := buf[pos]
		pos++
		return b
	}

	nextInt := func() int64 {
		var res int64
		b := nextByte()
		for b != 0 && (b < '0' || b > '9') {
			b = nextByte()
		}
		if b == 0 {
			return 0
		}
		for b >= '0' && b <= '9' {
			res = res*10 + int64(b-'0')
			b = nextByte()
		}
		return res
	}

	n := nextInt()
	if n == 0 {
		return
	}
	
	var s, m int64
	for i := int64(0); i < n; i++ {
		a := nextInt()
		s += a
		if a > m {
			m = a
		}
	}
	
	ans := s / 3
	if s-m < ans {
		ans = s - m
	}
	
	fmt.Println(ans)
}
```