For problem statement at 1000-1999/1100-1199/1180-1189/1186/problemF.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1180-1189/1186/verifierF.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
}
func (fs *FastScanner) NextInt() int {
sign := 1
val := 0
c, _ := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, _ = fs.r.ReadByte()
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c2, err := fs.r.ReadByte()
if err != nil {
break
}
c = c2
}
return val * sign
}
func main() {
in := NewFastScanner()
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
n := in.NextInt()
m := in.NextInt()
u := make([]int, m)
v := make([]int, m)
deg := make([]int, n+1)
for i := 0; i < m; i++ {
a := in.NextInt()
b := in.NextInt()
u[i] = a
v[i] = b
deg[a]++
deg[b]++
}
cap := make([]int, n+1)
for i := 1; i <= n; i++ {
cap[i] = deg[i] / 2
}
T := n + (m+1)/2
k := m
deleted := make([]bool, m)
for i := 0; i < m && k > T; i++ {
a := u[i]
b := v[i]
if cap[a] > 0 && cap[b] > 0 {
deleted[i] = true
cap[a]--
cap[b]--
k--
}
}
fmt.Fprintln(out, k)
for i := 0; i < m; i++ {
if !deleted[i] {
fmt.Fprintln(out, u[i], v[i])
}
}
}