For problem statement at 2000-2999/2000-2099/2000-2009/2005/problemE2.txt this is a correct solution, but verifier at 2000-2999/2000-2099/2000-2009/2005/verifierE2.go ends with test 1 case 2 mismatch: expected N got T
input:
3
2 2 3
1 2
1 3 6
4 6 2
4 2 2
1 2 1 2
1 1
2 2
1 1 1
1
1
reference output:
N
N
T
participant output:
N
T
T
exit status 1 can you fix the verifier? package main
import (
"io"
"os"
)
type FastScanner struct {
data []byte
idx int
}
func (fs *FastScanner) nextInt() int {
for fs.idx < len(fs.data) && (fs.data[fs.idx] < '0' || fs.data[fs.idx] > '9') {
fs.idx++
}
val := 0
for fs.idx < len(fs.data) && fs.data[fs.idx] >= '0' && fs.data[fs.idx] <= '9' {
val = val*10 + int(fs.data[fs.idx]-'0')
fs.idx++
}
return val
}
func main() {
data, _ := io.ReadAll(os.Stdin)
fs := FastScanner{data: data}
t := fs.nextInt()
out := make([]byte, 0, 2*t)
for ; t > 0; t-- {
l := fs.nextInt()
n := fs.nextInt()
m := fs.nextInt()
id := make(map[int]int, l*2+1)
a := make([]int, l)
uniq := 0
for i := 0; i < l; i++ {
v := fs.nextInt()
z := id[v]
if z == 0 {
uniq++
z = uniq
id[v] = z
}
a[i] = z - 1
}
stride := n + 1
all := make([]int, uniq*stride)
for i := 1; i <= n; i++ {
for j := 1; j <= m; j++ {
v := fs.nextInt()
if z := id[v]; z != 0 {
pos := (z-1)*stride + i
if j > all[pos] {
all[pos] = j
}
}
}
}
gNext := make([]int, n+2)
gCur := make([]int, n+2)
for k := l - 1; k >= 0; k-- {
base := a[k] * stride
best := 0
gCur[n+1] = 0
for i := n; i >= 1; i-- {
x := all[base+i]
if x >= gNext[i+1] && x > best {
best = x
}
gCur[i] = best
}
gNext, gCur = gCur, gNext
}
if gNext[1] > 0 {
out = append(out, 'T', '\n')
} else {
out = append(out, 'N', '\n')
}
}
os.Stdout.Write(out)
}