📌

AtCoder Beginner Contest 392 (2)

2025/02/11に公開

B問題

package main

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

func main() {
	var m, n int

	fmt.Scan(&m, &n)
	reader := bufio.NewReaderSize(os.Stdin, 1<<20)
	line, _ := reader.ReadString('\n')
	line = strings.TrimSpace(line)
	parts := strings.Split(line, " ")

	x := make(map[int]int, m+1)
	ans := make([]int, m+1)
	count := 0

	for i := 0; i < n; i++ {
		xi, _ := strconv.Atoi(parts[i])
		x[xi] = xi
	}

	for i := 1; i < m+1; i++ {
		s, ok := x[i]
		if ok && s != 0 {
			continue
		} else {
			count++
			ans[i] = i
		}
	}

	if count == 0 {
		fmt.Println(0)
		return
	} else {
		fmt.Println(count)
	}
	for i := 1; i < m+1; i++ {
		if ans[i] != 0 {
			if i == 1 {
				fmt.Print(ans[i])
			} else {
				fmt.Print(" ")
				fmt.Print(ans[i])
			}
		}
	}

}

Discussion