CF1371E2.Asterism (Hard Version)

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

This is the hard version of the problem. The difference between versions is the constraints on nn and aia_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 xx candies. There are also nn enemies numbered with integers from 11 to nn . Enemy ii has aia_i candies.

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

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

  • If Yuzu has equal or more number of candies than enemy PiP_i , she wins the duel and gets 11 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 PP 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)f(x) as the number of valid permutations for the integer xx .

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

Your task is to solve this problem made by Akari.

输入格式

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

The second line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (1ai109)(1 \le a_i \le 10^9) .

输出格式

In the first line, print the number of good integers xx .

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

It is guaranteed that the number of good integers xx does not exceed 10510^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=2p=2 .

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

So, the only good number is 33 .

In the third test, for all positive integers xx the value f(x)f(x) is divisible by p=3p = 3 .

首页