← Home
For problem statement at 0-999/800-899/830-839/838/problemD.txt this is a correct solution, but verifier at 0-999/800-899/830-839/838/verifierD.go ends with All tests passed can you fix the verifier? package main

import (
	"fmt"
)

const MOD = 1000000007

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 main() {
	var n, m int64
	if _, err := fmt.Scan(&n, &m); err != nil {
		return
	}

	ans := (n + 1 - m) % MOD
	ans = (ans * power(n+1, m-1)) % MOD
	ans = (ans * power(2, m)) % MOD

	fmt.Println(ans)
}