← Home
For problem statement at 1000-1999/1800-1899/1820-1829/1827/problemA.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1820-1829/1827/verifierA.go ends with All tests passed can you fix the verifier? package main

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

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Fscan(in, &n)

		a := make([]int, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
		}

		b := make([]int, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &b[i])
		}

		sort.Ints(a)
		sort.Ints(b)

		ans := int64(1)
		mod := int64(1000000007)
		ptr := 0

		for i := 1; i <= n; i++ {
			for ptr < n && a[ptr] <= b[i-1] {
				ptr++
			}
			factor := int64(i - ptr)
			if factor <= 0 {
				ans = 0
				break
			}
			ans = (ans * factor) % mod
		}

		fmt.Fprintln(out, ans)
	}
}