CF755F PolandBall and Gifts
题目描述
圣诞节到了!PolandBall 和他的朋友们要互赠礼物。一共有 $n$ 个 Ball。每个 Ball 按照某个排列 $p$ 给别人送礼物,满足对于所有 $i$,都有 $p_i \neq i$。
不幸的是,Ball 们有点迷糊。我们已知正好有 $k$ 个 Ball 会忘记带礼物。对于编号为 $i$ 的 Ball,当且仅当以下两个条件都满足时,他才能收到礼物:
1. 编号为 $i$ 的 Ball 带来了他应该送的礼物。
2. 存在 $x$ 使得 $p_x = i$,且 Ball $x$ 也带来了他的礼物。
已知恰有 $k$ 个 Ball 会忘记带礼物,问最小和最大可能没有收到礼物的 Ball 的人数。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$($2 \leq n \leq 10^6$,$0 \leq k \leq n$),分别表示 Ball 的总数和忘记带礼物的 Ball 的个数。
第二行包含一个排列 $p$,是 $1$ 到 $n$ 的排列,其中 $p_i$ 表示第 $i$ 个 Ball 应当把礼物送给编号为 $p_i$ 的 Ball。对于所有的 $i$,都有 $p_i \neq i$。
输出格式
请输出两个整数——最小和最大可能没有收到礼物的 Ball 的人数,按顺序输出。
说明/提示
在第一个样例中,如果第三个和第一个 Ball 忘记带礼物,那么只有他们两个人收不到礼物,因此最小答案是 $2$。但如果第一个和第二个 Ball 忘记带礼物,那么除了第五个 Ball 外其余都收不到礼物,所以最大答案是 $4$。
由 ChatGPT 5 翻译