← Home
For problem statement at 1000-1999/1400-1499/1400-1409/1406/problemB.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1400-1409/1406/verifierB.go ends with Accepted can you fix the verifier? package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	
	if !scanner.Scan() {
		return
	}
	t, _ := strconv.Atoi(scanner.Text())

	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	for i := 0; i < t; i++ {
		if !scanner.Scan() {
			break
		}
		n, _ := strconv.Atoi(scanner.Text())

		a := make([]int64, n)
		for j := 0; j < n; j++ {
			scanner.Scan()
			val, _ := strconv.ParseInt(scanner.Text(), 10, 64)
			a[j] = val
		}

		sort.Slice(a, func(i, j int) bool {
			return a[i] < a[j]
		})

		p1 := a[n-1] * a[n-2] * a[n-3] * a[n-4] * a[n-5]
		p2 := a[n-1] * a[n-2] * a[n-3] * a[0] * a[1]
		p3 := a[n-1] * a[0] * a[1] * a[2] * a[3]

		maxP := p1
		if p2 > maxP {
			maxP = p2
		}
		if p3 > maxP {
			maxP = p3
		}

		fmt.Fprintln(out, maxP)
	}
}