← Home
For problem statement at 0-999/200-299/220-229/225/problemB.txt this is a correct solution, but verifier at 0-999/200-299/220-229/225/verifierB.go ends with All tests passed can you fix the verifier? package main

import (
	"fmt"
)

func main() {
	var s, k int64
	if _, err := fmt.Scan(&s, &k); err != nil {
		return
	}

	seq := []int64{1, 1}
	sum := int64(2)
	for {
		nextVal := sum
		if nextVal > s {
			break
		}
		seq = append(seq, nextVal)
		sum += nextVal
		if int64(len(seq)) > k {
			sum -= seq[int64(len(seq))-k-1]
		}
	}

	vals := make([]int64, 0, len(seq))
	vals = append(vals, 0)
	for i := 1; i < len(seq); i++ {
		vals = append(vals, seq[i])
	}

	ans := make([]int64, 0)
	rem := s
	for i := len(vals) - 1; i >= 0; i-- {
		if vals[i] > 0 && vals[i] <= rem {
			ans = append(ans, vals[i])
			rem -= vals[i]
		}
	}

	if len(ans) < 2 {
		ans = append(ans, 0)
	}

	fmt.Println(len(ans))
	for i, v := range ans {
		if i > 0 {
			fmt.Print(" ")
		}
		fmt.Print(v)
	}
	fmt.Println()
}