题目描述
Once Bob needed to find the second order statistics of a sequence of integer numbers. Lets choose each number from the sequence exactly once and sort them. The value on the second position is the second order statistics of the given sequence. In other words it is the smallest element strictly greater than the minimum. Help Bob solve this problem.
输入格式
The first input line contains integer nn ( 1<=n<=1001<=n<=100 ) — amount of numbers in the sequence. The second line contains nn space-separated integer numbers — elements of the sequence. These numbers don't exceed 100 in absolute value.
输出格式
If the given sequence has the second order statistics, output this order statistics, otherwise output NO.
题意翻译
题面描述
给定一个数组,输出其中第二小的整数(相等的整数只计算一次)。
输入格式
第一行,一个整数 nn(1 \leq n \leq 1001≤n≤100),表示数组长度。
第二行,nn 个绝对值小于 100100 的整数。
输出格式
一行。如果该数组存在第二小整数,则输出第二小整数。如果不存在,则输出NO
。
输入输出样例
输入 #1
4 1 2 2 -4
输出 #1
1
输入 #2
5 1 2 3 1 1
输出 #2
2
CODE
#include <iostream>
#include <set>
using namespace std;
int n, x;
set<int> s;
int main (){
cin>>n;
for(int i=1;i<=n;i++){
cin >> x;
s.insert(x);
}
s.erase(s.begin());
if(s.empty())
puts("NO");
else
cout << *s.begin() << endl;
return 0;
}
set就是大家所学的集合,有互异性,并且自动排好了序,需要引入
#include <set>
using namespace std;
谢谢大家!
(大佬勿喷)