← Home
For problem statement at 0-999/500-599/500-509/507/problemA.txt this is a correct solution, but verifier at 0-999/500-599/500-509/507/verifierA.go ends with All tests passed. can you fix the verifier? package main

import (
	"fmt"
	"sort"
)

type Instrument struct {
	id   int
	time int
}

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

	instruments := make([]Instrument, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&instruments[i].time)
		instruments[i].id = i + 1
	}

	sort.Slice(instruments, func(i, j int) bool {
		return instruments[i].time < instruments[j].time
	})

	var learned []int
	for _, inst := range instruments {
		if k >= inst.time {
			k -= inst.time
			learned = append(learned, inst.id)
		} else {
			break
		}
	}

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