← Home
For problem statement at 1000-1999/1600-1699/1670-1679/1674/problemF.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1670-1679/1674/verifierF.go ends with All tests passed. can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

type Fenwick struct {
	tree []int64
}

func NewFenwick(size int) *Fenwick {
	return &Fenwick{make([]int64, size+1)}
}

func (f *Fenwick) Update(idx int, delta int64) {
	for idx < len(f.tree) {
		f.tree[idx] += delta
		idx += idx & -idx
	}
}

func (f *Fenwick) Query(idx int) int64 {
	var sum int64
	for idx > 0 {
		sum += f.tree[idx]
		idx -= idx & -idx
	}
	return sum
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	line, _ := reader.ReadString('\n')
	parts := strings.Fields(line)
	n, _ := strconv.Atoi(parts[0])
	m, _ := strconv.Atoi(parts[1])
	q, _ := strconv.Atoi(parts[2])
	grid := make([][]byte, n)
	for i := 0; i < n; i++ {
		line, _ = reader.ReadString('\n')
		grid[i] = []byte(strings.TrimSpace(line))
	}
	ft := NewFenwick(m)
	var K int
	for j := 0; j < m; j++ {
		var c int64
		for i := 0; i < n; i++ {
			if grid[i][j] == '*' {
				c++
			}
		}
		ft.Update(j+1, c)
		K += int(c)
	}
	var sb strings.Builder
	for qi := 0; qi < q; qi++ {
		line, _ = reader.ReadString('\n')
		parts = strings.Fields(line)
		x, _ := strconv.Atoi(parts[0])
		y, _ := strconv.Atoi(parts[1])
		row := x - 1
		col := y - 1
		var delta int64
		if grid[row][col] == '*' {
			grid[row][col] = '.'
			delta = -1
		} else {
			grid[row][col] = '*'
			delta = 1
		}
		ft.Update(y, delta)
		K += int(delta)
		full := K / n
		rem := K % n
		var correct int64
		if full > 0 {
			correct = ft.Query(full)
		}
		part := full + 1
		if rem > 0 && part <= m {
			for r := 0; r < rem; r++ {
				if grid[r][part-1] == '*' {
					correct++
				}
			}
		}
		moves := K - int(correct)
		sb.WriteString(strconv.Itoa(moves) + " ")
	}
	fmt.Print(sb.String())
}
```