输入的第二行有n个整数s 1, s 2, …, s n (1 ≤ s i ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
10 1 10 20 30 20
10
参考代码:
#include <iostream>
using namespace std;
struct num{
int s;
int times =1;
};
int main(){
int n;
cin >> n;
num *t = new num[n];
for (int i = 0; i < n;i++)
{
cin >> t[i].s;
}
num temp ;
for (int i = 0; i < n;i++)
{
for (int j = 0; j < n-1;j++)
{
if (t[j].s>t[j+1].s)
{
temp = t[j];
t[j] = t[j + 1];
t[j + 1] = temp;
}
}
}
int x = 1;
for (int i = 1; i < n;i++)
{
if (t[i].s == t[i - 1].s){
x++;
t[i-1].times = 0;
}
else{
t[i-1].times = x;
x = 1;
}
}
if (x!=1){
t[n - 1].times = x;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n-1; j++)
{
if (t[j].times<t[j + 1].times)
{
temp = t[j];
t[j] = t[j + 1];
t[j + 1] = t[j];
}
}
}
int sum = 0;
int result = t[sum].s;
while (t[sum].times == t[sum + 1].times){
if (result > t[sum + 1].s){
result = t[sum+1].s;
}
sum++;
}
cout << result;
return 0;
}
提交结果:
代码长度 | 编程语言 | 评测结果 | 得分 | 时间使用 | 空间使用 |
---|
920B | C++ | 正确 | 100 | 15ms | 504.0KB |