#P160. 小明的奖品

小明的奖品

小明的公司一共有 nn 名员工,今天开员工大会,有抽奖环节,不过小明准备使用一种特别的抽奖规则决定奖品的归属。

他让这 nn 名员工每个人写下一个不超过 xx 的正整数,然后选取其中出现了但是出现次数最少的数,如果有多个数出现次数一样,选取数字最大的。

写下这个数的人都会得到奖品,现在告诉你每个人写的数,你来帮小明算一算写下哪个数的人会获奖,有多少人会获奖。

初始化代码,其中需要添加代码的地方已经使用注释标出。

#include <cstdio>
#include <iostream>
using namespace std;
int cnt[]; // 请填上合适的数组大小
int main() {
    freopen("bonus.in", "r", stdin);
    freopen("bonus.out", "w", stdout);
    int n, x;
    cin >> n >> x;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        // 这里需要添加内容
    }
    // 这里需要添加内容
    for (int i = 1; i <= x; i++) { 
     // 请完善 if 条件分支部分
    }
    // 这里需要添加内容
    return 0;
}

输入格式

输入包含 22 行:

  • 第一行有两个整数 n,x(1n105,1x106)n,x(1≤n≤10^5,1≤x≤10^6)
  • 第二行有 nn 个空格隔开的整数 ai(1aix)a_i(1≤a_i≤x)

输出格式

输出包含一行,包含两个整数,用空格隔开,为获奖者写下的数字和获奖者的数量。

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 bonus.in,输出文件为 bonus.out

样例输入

5 3
1 2 3 3 3

样例输出

2 1