For problem statement at 1000-1999/1100-1199/1130-1139/1131/problemE.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1130-1139/1131/verifierE.go ends with case 46 failed: expected 2 got 1
exit status 1 can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
var n int
if _, err := fmt.Fscan(in, &n); err != nil {
return
}
var cur string
if _, err := fmt.Fscan(in, &cur); err != nil {
return
}
var M [26]int64
for c := 0; c < 26; c++ {
char := byte('a' + c)
M[c] = longestContiguous(cur, char)
}
for i := 1; i < n; i++ {
if _, err := fmt.Fscan(in, &cur); err != nil {
break
}
var newM [26]int64
for c := 0; c < 26; c++ {
char := byte('a' + c)
allChar := true
for j := 0; j < len(cur); j++ {
if cur[j] != char {
allChar = false
break
}
}
if allChar {
newM[c] = M[c] + (M[c]+1)*int64(len(cur))
} else {
if M[c] > 0 {
L := longestPrefix(cur, char)
R := longestSuffix(cur, char)
mStr := longestContiguous(cur, char)
ans := mStr
if int64(R+1+L) > ans {
ans = int64(R + 1 + L)
}
newM[c] = ans
} else {
newM[c] = longestContiguous(cur, char)
}
}
}
M = newM
}
var ans int64 = 0
for c := 0; c < 26; c++ {
if M[c] > ans {
ans = M[c]
}
}
fmt.Println(ans)
}
func longestPrefix(s string, c byte) int {
for i := 0; i < len(s); i++ {
if s[i] != c {
return i
}
}
return len(s)
}
func longestSuffix(s string, c byte) int {
for i := len(s) - 1; i >= 0; i-- {
if s[i] != c {
return len(s) - 1 - i
}
}
return len(s)
}
func longestContiguous(s string, c byte) int64 {
var max int64 = 0
var cur int64 = 0
for i := 0; i < len(s); i++ {
if s[i] == c {
cur++
if cur > max {
max = cur
}
} else {
cur = 0
}
}
return max
}