add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent d798d5e8c9
commit 886b5e0a8e
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
34 changed files with 1164 additions and 0 deletions

View file

@ -0,0 +1,50 @@
package q2975
import "slices"
func maximizeSquareArea(m int, n int, hFences []int, vFences []int) int {
slices.Sort(hFences)
slices.Sort(vFences)
nHFences := len(hFences) + 2
lengths := make(map[int]struct{}, nHFences*(nHFences-1)/2)
for i := -1; i < len(hFences); i++ {
a := 1
if i >= 0 {
a = hFences[i]
}
for j := i + 1; j <= len(hFences); j++ {
b := m
if j < len(hFences) {
b = hFences[j]
}
lengths[b-a] = struct{}{}
}
}
maxEdge := -1
for i := -1; i < len(vFences); i++ {
a := 1
if i >= 0 {
a = vFences[i]
}
for j := i + 1; j <= len(vFences); j++ {
b := n
if j < len(vFences) {
b = vFences[j]
}
if _, ok := lengths[b-a]; ok {
maxEdge = max(maxEdge, b-a)
}
}
}
if maxEdge == -1 {
return -1
}
maxEdge %= 1e9 + 7
return (maxEdge * maxEdge) % (1e9 + 7)
}
var _ = maximizeSquareArea