For problem statement at 1000-1999/1300-1399/1310-1319/1310/problemE.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1310-1319/1310/verifierE.go ends with # command-line-arguments
./1310E.go:160:12: declared and not used: same
failed to build reference: exit status 1
exit status 1 can you fix the verifier? package main
import (
"fmt"
)
func main() {
var n, k int
if _, err := fmt.Scan(&n, &k); err != nil {
return
}
if k == 1 || k == 2 {
dp := make([]int, n+1)
dp[0] = 1
for i := 1; ; i++ {
w := i
if k == 2 {
w = i * (i + 1) / 2
}
if w > n {
break
}
for j := w; j <= n; j++ {
dp[j] = (dp[j] + dp[j-w]) % 998244353
}
}
ans := 0
for j := 1; j <= n; j++ {
ans = (ans + dp[j]) % 998244353
}
fmt.Println(ans)
return
}
C := make([][]int, 4050)
for i := 0; i < 4050; i++ {
C[i] = make([]int, 2050)
C[i][0] = 1
for j := 1; j <= i && j < 2050; j++ {
C[i][j] = C[i-1][j-1] + C[i-1][j]
if C[i][j] > n {
C[i][j] = n + 1
}
}
}
ans := 0
var dfs func(last_g, i, u_sum, current_cost int)
dfs = func(last_g, i, u_sum, current_cost int) {
new_u_sum := u_sum
new_cost := current_cost
for g := 1; g <= last_g; g++ {
new_u_sum += i
if new_u_sum+k-3 >= 4050 || k-2 >= 2050 {
break
}
new_cost += C[new_u_sum+k-3][k-2]
if new_cost > n {
break
}
ans = (ans + 1) % 998244353
dfs(g, i+1, new_u_sum, new_cost)
}
}
dfs(n, 1, 0, 0)
fmt.Println(ans)
}