← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	n, _ := strconv.Atoi(scanner.Text())

	for i := 0; i < n; i++ {
		scanner.Scan()
		m, _ := strconv.Atoi(scanner.Text())
		scanner.Scan()
		parts := strings.Fields(scanner.Text())

		sum := 0.0
		maxVal := 0.0
		vals := make([]float64, m)
		for j, p := range parts {
			v, _ := strconv.ParseFloat(p, 64)
			vals[j] = v
			sum += v
			if v > maxVal {
				maxVal = v
			}
		}
		mean := sum / float64(m)

		variance := 0.0
		for _, v := range vals {
			diff := v - mean
			variance += diff * diff
		}
		variance /= float64(m)

		var estimate float64
		if variance > 1.5*mean {
			estimate = maxVal * float64(m+1) / float64(m)
		} else {
			estimate = mean
		}

		fmt.Println(int(estimate + 0.5))
	}
}
```