题目描述
一场激烈的比赛结束后 , asMasM 将要确定冠亚季军
其中分数最高的选手将被确定为冠军 , 分数第二高的选手将被确定为亚军 , 分数第三高的选手将被确定为季军
给出 NN 个选手的得分 , 请你确定季军的分数以及多少人被确定为季军
保证至少有三个不同的分数
输入格式
第一行输入一个整数 NN
接下来 NN 行每行输入一个整数表示选手得分
输出格式
输出两个空格分隔的整数 , 第一个整数表示季军的分数 , 第二个整数表示季军的人数
输入样例1
4
70
62
58
73
输出样例1
62 1
输入样例2
8
75
70
60
70
70
60
75
70
输出样例2
60 2
数据规模
对于 16%16% 的数据 1≤N≤501≤N≤50 , 保证各个分数都不相同
对于另外 20%20% 的数据 1≤N≤501≤N≤50
对于另外 72%72% 的数据分数不超过 ≤100≤100
对于全部的数据 1≤N≤2.5×1051≤N≤2.5×1000000 分数为不超过 10的9次方的非负整数
#include <iostream>
int main() {
int n;
std::cin >> n;
int scores[250005]; // 根据数据规模适当调整数组大小
for (int i = 0; i < n; i++) {
std::cin >> scores[i];
}
// 冒泡排序进行升序排列
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (scores[j] < scores[j + 1]) {
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
int thirdScore = scores[2];
int countThird = 0;
for (int i = 0; i < n; i++) {
if (scores[i] == thirdScore) {
countThird++;
}
}
std::cout << thirdScore << " " << countThird << std::endl;
return 0;
}