CF231C.To Add or Not to Add

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

A piece of paper contains an array of n integers _a_1, _a_2, ..., a__n. Your task is to find a number that occurs the maximum number of times in this array.

However, before looking for such number, you are allowed to perform not more than k following operations — choose an arbitrary element from the array and add 1 to it. In other words, you are allowed to increase some array element by 1 no more than k times (you are allowed to increase the same element of the array multiple times).

Your task is to find the maximum number of occurrences of some number in the array after performing no more than k allowed operations. If there are several such numbers, your task is to find the minimum one.

一张纸上写有一个包含 nn 个整数 a1, a2, …, ana_1,\,a_2,\,\dots,\,a_n 的数组。你的任务是找出该数组中出现次数最多的那个数。

但在寻找这样的数之前,你最多可以执行 kk 次如下操作:任选数组中的一个元素,并将其加 11。换言之,你最多可将数组中的某些元素增加 11 共 kk 次(允许对数组的同一元素多次执行该操作)。

你的任务是:在执行不超过 kk 次允许的操作后,求出数组中某个数所能达到的最大出现次数。若存在多个这样的数,则需找出其中最小的那个数。

输入格式

The first line contains two integers n and k (1 ≤ n ≤ 105; 0 ≤ k ≤ 109) — the number of elements in the array and the number of operations you are allowed to perform, correspondingly.

The third line contains a sequence of n integers _a_1, _a_2, ..., a__n (|a__i| ≤ 109) — the initial array. The numbers in the lines are separated by single spaces.

第一行包含两个整数 nn 和 kk(1≤n≤1051 \leq n \leq 10^5;0≤k≤1090 \leq k \leq 10^9)—— 分别表示数组中元素的个数以及允许执行的操作次数。

第三行包含一个由 nn 个整数 a1, a2, …, ana_1,\ a_2,\ \dots,\ a_n(∣ai∣≤109|a_i| \leq 10^9)组成的序列 —— 初始数组。同一行中的数字以单个空格分隔。

输出格式

In a single line print two numbers — the maximum number of occurrences of some number in the array after at most k allowed operations are performed, and the minimum number that reaches the given maximum. Separate the printed numbers by whitespaces.

在一行中输出两个数——在最多执行 k 次允许操作后,数组中某个数字出现次数的最大值,以及达到该最大值的最小数字。两个输出的数字之间用空格分隔。

输入输出样例

  • 输入#1

    5 3
    6 3 4 0 2

    输出#1

    3 4
  • 输入#2

    3 4
    5 5 5

    输出#2

    3 5
  • 输入#3

    5 3
    3 1 2 2 1

    输出#3

    4 2

说明/提示

In the first sample your task is to increase the second element of the array once and increase the fifth element of the array twice. Thus, we get sequence 6, 4, 4, 0, 4, where number 4 occurs 3 times.

In the second sample you don't need to perform a single operation or increase each element by one. If we do nothing, we get array 5, 5, 5, if we increase each by one, we get 6, 6, 6. In both cases the maximum number of occurrences equals 3. So we should do nothing, as number 5 is less than number 6.

In the third sample we should increase the second array element once and the fifth element once. Thus, we get sequence 3, 2, 2, 2, 2, where number 2 occurs 4 times.

在第一个样例中,你需要将数组的第二个元素增加一次,并将第五个元素增加两次。这样我们得到序列 6, 4, 4, 0, 46,\ 4,\ 4,\ 0,\ 4,其中数字 44 出现了 33 次。

在第二个样例中,你无需执行任何操作,或者将每个元素都增加 11。如果我们不做任何操作,得到数组 5, 5, 55,\ 5,\ 5;如果我们将每个元素都加 11,则得到 6, 6, 66,\ 6,\ 6。在这两种情况下,最大出现次数均为 33。因此我们应当不做任何操作,因为数字 55 小于数字 66。

在第三个样例中,我们需要将数组的第二个元素增加一次,第五个元素也增加一次。这样我们得到序列 3, 2, 2, 2, 23,\ 2,\ 2,\ 2,\ 2,其中数字 22 出现了 44 次。

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

首页