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 n and ai. 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 ai 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 Pi, 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≤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.
这是该问题的简单版本。两个版本的区别在于对 n 和 ai 的约束条件不同。仅当该问题的所有版本均被解决时,才允许进行 hack。
首先,青井(Aoi)提出了如下一道算法竞赛题目构思:
柚子(Yuzu)是一位收集糖果的女孩。最初,她拥有 x 颗糖果。此外还有 n 个敌人,编号为 1 到 n 的整数。敌人 i 拥有 ai 颗糖果。
柚子将确定一个排列 P。所谓排列,是指由 1 到 n 这 n 个互不相同的整数以任意顺序组成的数组。例如,2,3,1,5,4 是一个排列,但 1,2,2 不是排列(数字 2 在数组中出现了两次),1,3,4 也不是排列(因为 n=3,但数组中却出现了数字 4)。
随后,她将依次与这些敌人进行 n 轮决斗,规则如下:
- 若柚子当前拥有的糖果数大于或等于敌人 Pi 的糖果数,则她赢得该轮决斗,并额外获得 1 颗糖果;否则她输掉该轮决斗,不获得任何糖果。
- 柚子在某轮决斗中获得的糖果可用于后续的决斗。
柚子希望赢得全部 n 轮决斗。问:有多少个合法的排列 P?
这个问题过于简单,对青井的朋友明里(Akari)而言缺乏趣味性。于是明里基于上述构思构造了如下新问题:
定义 f(x) 为使整数 x 对应的合法排列个数。
给定 n、数组 a 以及一个质数 p≤n。若正整数 x 满足 f(x) 不被 p 整除,则称 x 为“好”的(good)。请找出所有“好”的正整数 x。
你的任务就是解决明里所提出的这一问题。
输入格式
The first line contains two integers n, p (2≤p≤n≤2000). It is guaranteed, that the number p is prime (it has exactly two divisors 1 and p).
The second line contains n integers a1,a2,…,an (1≤ai≤2000).
第一行包含两个整数 n、p (2≤p≤n≤2000)。保证 p 是质数(即它恰好有两个约数:1 和 p)。
第二行包含 n 个整数 a1,a2,…,an (1≤ai≤2000)。
输出格式
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 105.
第一行输出好整数 x 的个数。
第二行按升序输出所有好整数 x。
保证好整数 x 的个数不超过 105。
输入输出样例
输入#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=2.
- If x≤2, there are no valid permutations for Yuzu. So f(x)=0 for all x≤2. The number 0 is divisible by 2, so all integers x≤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≥5, all 6 permutations are valid for Yuzu. So f(x)=6 for all x≥5, so all integers x≥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.
在第一个测试中,p=2。
- 若 x≤2,则不存在 Yuzu 的合法排列,因此对所有 x≤2 都有 f(x)=0。而 0 可被 2 整除,故所有整数 x≤2 均不为好数。
- 若 x=3,则 {1,2,3} 是 Yuzu 唯一的合法排列,因此 f(3)=1,故数 3 是好数。
- 若 x=4,则 {1,2,3}, {1,3,2}, {2,1,3}, {2,3,1} 均为 Yuzu 的合法排列,因此 f(4)=4,故数 4 不为好数。
- 若 x≥5,则全部 6 种排列均为 Yuzu 的合法排列,因此对所有 x≥5 都有 f(x)=6,故所有整数 x≥5 均不为好数。
因此,唯一的好数是 3。
在第三个测试中,对所有正整数 x,值 f(x) 均可被 p=3 整除。
输入解题思路,AI测评打分。不知道怎么写?