#P6300. 悔改

    ID: 5218 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2020O2优化枚举,暴力快速傅里叶变换 FFT快速数论变换 NTT

悔改

题目描述

Daniel13265 有一些同样长的小木棍,他把这些木棍随意砍成两段,使得每段的长都不超过 mm

现在他想把小木棍拼接成原来的样子,但是却遗失了部分小木棍,而且忘记了自己开始时有多少根木棍和它们的长度。所以他打算把剩下的小木棍拼接出尽可能多的相同长度的木棍。

给出每段小木棍的长度,求出从剩下的木棍中最多能够拼接出的相同长度的木棍的个数与能拼接出来相同长度的木棍个数最多时木棍的最小可能长度。

输入格式

输入共 22 行。

第一行包含两个正整数 n,mn,m,分别表示剩余木棍个数与剩余木棍的最大可能长度。
第二行共 nn 个用单个空格隔开的正整数,第 ii 个数 aia_i 表示第 ii 个木棍的长度。

输出格式

输出一行两个整数,分别表示从剩下的木棍中最多能够拼接出的相同长度的木棍的个数与能拼接出来相同长度的木棍个数最多时木棍的最小可能长度。

7 10
1 1 2 4 7 8 9

2 9

提示

样例解释

如果要拼接出尽量多的长度为 1111 的木棍,可以将长度为 2299 的木棍拼接在一起,将长度为 4477 的木棍拼接在一起。然而如果将长度为 1188 的木棍拼接在一起,将长度为 2277 的木棍拼接在一起,可以拼接出 22 根长度为 99 的木棍。

可以发现能拼接出来相同长度的木棍个数的最大值就是 22,此时木棍的长度可能为 9,109,101111,其中最小的为 99

数据范围

本题采用捆绑测试。你每通过一个子任务的所有数据点,就能得到该子任务的全部分数。

子任务编号 nn\le mm\le 分值
11 1010 10510^5 55
22 10310^3 10310^3 1010
33 10510^5
44 10510^5 1010 55
55 10310^3 1010
66 10510^5 6060

对于 100%100\% 的数据,满足 2n,m105,1aim2\le n,m\le10^5,1\le a_i\le m