CF1371E1.Asterism (Easy Version)

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

This is the easy 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 p≤np \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.

这是该问题的简单版本。两个版本的区别在于对 nn 和 aia_i 的约束条件不同。仅当该问题的所有版本均被解决时,才允许进行 hack。

首先,青井(Aoi)提出了如下一道算法竞赛题目构思:

柚子(Yuzu)是一位收集糖果的女孩。最初,她拥有 xx 颗糖果。此外还有 nn 个敌人,编号为 11 到 nn 的整数。敌人 ii 拥有 aia_i 颗糖果。

柚子将确定一个排列 PP。所谓排列,是指由 11 到 nn 这 nn 个互不相同的整数以任意顺序组成的数组。例如,2,3,1,5,4{2,3,1,5,4} 是一个排列,但 1,2,2{1,2,2} 不是排列(数字 22 在数组中出现了两次),1,3,4{1,3,4} 也不是排列(因为 n=3n = 3,但数组中却出现了数字 44)。

随后,她将依次与这些敌人进行 nn 轮决斗,规则如下:

  • 若柚子当前拥有的糖果数大于或等于敌人 PiP_i 的糖果数,则她赢得该轮决斗,并额外获得 11 颗糖果;否则她输掉该轮决斗,不获得任何糖果。
  • 柚子在某轮决斗中获得的糖果可用于后续的决斗。

柚子希望赢得全部 nn 轮决斗。问:有多少个合法的排列 PP?

这个问题过于简单,对青井的朋友明里(Akari)而言缺乏趣味性。于是明里基于上述构思构造了如下新问题:

定义 f(x)f(x) 为使整数 xx 对应的合法排列个数。

给定 nn、数组 aa 以及一个质数 p≤np \le n。若正整数 xx 满足 f(x)f(x) 不被 pp 整除,则称 xx 为“好”的(good)。请找出所有“好”的正整数 xx。

你的任务就是解决明里所提出的这一问题。

输入格式

The first line contains two integers nn, pp (2≤p≤n≤2000)(2 \le p \le n \le 2000). 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 (1≤ai≤2000)(1 \le a_i \le 2000).

第一行包含两个整数 nn、pp (2≤p≤n≤2000)(2 \le p \le n \le 2000)。保证 pp 是质数(即它恰好有两个约数:11 和 pp)。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤2000)(1 \le a_i \le 2000)。

输出格式

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.

第一行输出好整数 xx 的个数。

第二行按升序输出所有好整数 xx。

保证好整数 xx 的个数不超过 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

说明/提示

In the first test, p=2p=2.

  • If x≤2x \le 2, there are no valid permutations for Yuzu. So f(x)=0f(x)=0 for all x≤2x \le 2. The number 00 is divisible by 22, so all integers x≤2x \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 x≥5x \ge 5, all 66 permutations are valid for Yuzu. So f(x)=6f(x)=6 for all x≥5x \ge 5, so all integers x≥5x \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.

在第一个测试中,p=2p=2。

  • 若 x≤2x \le 2,则不存在 Yuzu 的合法排列,因此对所有 x≤2x \le 2 都有 f(x)=0f(x)=0。而 00 可被 22 整除,故所有整数 x≤2x \leq 2 均不为好数。
  • 若 x=3x = 3,则 {1,2,3}\{1,2,3\} 是 Yuzu 唯一的合法排列,因此 f(3)=1f(3)=1,故数 33 是好数。
  • 若 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\} 均为 Yuzu 的合法排列,因此 f(4)=4f(4)=4,故数 44 不为好数。
  • 若 x≥5x \ge 5,则全部 66 种排列均为 Yuzu 的合法排列,因此对所有 x≥5x \ge 5 都有 f(x)=6f(x)=6,故所有整数 x≥5x \ge 5 均不为好数。

因此,唯一的好数是 33。

在第三个测试中,对所有正整数 xx,值 f(x)f(x) 均可被 p=3p = 3 整除。

输入解题思路,AI测评打分。不知道怎么写?

首页