测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A13470. Asterism (Hard Version)

编程题 普及/提高-

题目描述

This is the hard version of the problem. The difference between versions is the constraints on $n$ and $a_i$ . You can make hacks only if all versions of the problem are solved.

First, Aoi came up with the following idea for the competitive programming problem:

Yuzu is a girl who collecting candies. Originally, she has $x$ candies. There are also $n$ enemies numbered with integers from $1$ to $n$ . Enemy $i$ has $a_i$ candies.

Yuzu is going to determine a permutation $P$ . A permutation is an array consisting of $n$ distinct integers from $1$ to $n$ in arbitrary order. For example, $\{2,3,1,5,4\}$ is a permutation, but $\{1,2,2\}$ is not a permutation ( $2$ appears twice in the array) and $\{1,3,4\}$ is also not a permutation (because $n=3$ but there is the number $4$ in the array).

After that, she will do $n$ duels with the enemies with the following rules:

- If Yuzu has equal or more number of candies than enemy $P_i$ , she wins the duel and gets $1$ candy. Otherwise, she loses the duel and gets nothing.
- The candy which Yuzu gets will be used in the next duels.

Yuzu wants to win all duels. How many valid permutations $P$ exist?

This problem was easy and wasn't interesting for Akari, who is a friend of Aoi. And Akari made the following problem from the above idea:

Let's define $f(x)$ as the number of valid permutations for the integer $x$ .

You are given $n$ , $a$ and a prime number $p \le n$ . Let's call a positive integer $x$ good, if the value $f(x)$ is not divisible by $p$ . Find all good integers $x$ .

Your task is to solve this problem made by Akari.

输入格式

The first line contains two integers $n$ , $p$ $(2 \le p \le n \le 10^5)$ . It is guaranteed, that the number $p$ is prime (it has exactly two divisors $1$ and $p$ ).

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ $(1 \le a_i \le 10^9)$ .

输出格式

In the first line, print the number of good integers $x$ .

In the second line, output all good integers $x$ in the ascending order.

It is guaranteed that the number of good integers $x$ does not exceed $10^5$ .

输入输出样例

输入 #1
3 2
3 4 5
输出 #1
1
3
输入 #2
4 3
2 3 5 6
输出 #2
2
3 4
输入 #3
4 3
9 1 1 1
输出 #3
0
输入 #4
3 2
1000000000 1 999999999
输出 #4
1
999999998

说明/提示

In the first test, $p=2$ .

- If $x \le 2$ , there are no valid permutations for Yuzu. So $f(x)=0$ for all $x \le 2$ . The number $0$ is divisible by $2$ , so all integers $x \leq 2$ are not good.
- If $x = 3$ , $\{1,2,3\}$ is the only valid permutation for Yuzu. So $f(3)=1$ , so the number $3$ is good.
- If $x = 4$ , $\{1,2,3\} , \{1,3,2\} , \{2,1,3\} , \{2,3,1\}$ are all valid permutations for Yuzu. So $f(4)=4$ , so the number $4$ is not good.
- If $x \ge 5$ , all $6$ permutations are valid for Yuzu. So $f(x)=6$ for all $x \ge 5$ , so all integers $x \ge 5$ are not good.

So, the only good number is $3$ .

In the third test, for all positive integers $x$ the value $f(x)$ is divisible by $p = 3$ .
上一题 去做题 下一题