← Home
For problem statement at 1000-1999/1900-1999/1920-1929/1924/problemC.txt this is a correct solution, but verifier at 1000-1999/1900-1999/1920-1929/1924/verifierC.go ends with case 1 mismatch
expected:
74610297
got:
848423390
input:
1
210
exit status 1 can you fix the verifier? ```go
package main

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

const MOD = int64(999999893)

func power(base, exp int64) int64 {
	res := int64(1)
	base %= MOD
	for exp > 0 {
		if exp%2 == 1 {
			res = (res * base) % MOD
		}
		base = (base * base) % MOD
		exp /= 2
	}
	return res
}

func extGCD(a, b int64) (int64, int64, int64) {
	if a == 0 {
		return b, 0, 1
	}
	gcd, x1, y1 := extGCD(b%a, a)
	x := y1 - (b/a)*x1
	y := x1
	return gcd, x, y
}

func inverse(n int64) int64 {
	_, x, _ := extGCD(n, MOD)
	return (x%MOD + MOD) % MOD
}

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	
	if !scanner.Scan() {
		return
	}
	tStr := scanner.Text()
	t, _ := strconv.Atoi(tStr)
	
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()
	
	for i := 0; i < t; i++ {
		scanner.Scan()
		nStr := scanner.Text()
		n, _ := strconv.ParseInt(nStr, 10, 64)
		
		var m int64 = n / 2
		var num, den int64
		
		if n%2 == 0 {
			powM := power(2, m)
			pow2M_minus_1 := power(2, 2*m-1)
			powM_plus_1 := power(2, m+1)
			
			num = (1 - powM) % MOD
			den = (pow2M_minus_1 - powM_plus_1 + 1) % MOD
		} else {
			powM := power(2, m)
			pow2M := power(2, 2*m)
			powM_plus_1 := power(2, m+1)
			
			num = (powM - 1) % MOD
			den = (pow2M + powM_plus_1 - 1) % MOD
		}
		
		num = (num%MOD + MOD) % MOD
		den = (den%MOD + MOD) % MOD
		
		ans := (num * inverse(den)) % MOD
		fmt.Fprintln(out, ans)
	}
}
```