时间限制:1秒
空间限制:32768K
输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
输入例子1:
10 10 10 10 10 20 20 30 30 40 40
输出例子1:
30
集合的方法不易出错,stl果然好!
#include <cstdio>
#include <set>
using namespace std;
const int maxn=52;
int a[maxn];
int main(){
set<int> s;
int n;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
s.insert(a[i]);
}
int cnt=0,ok=0;
for(set<int>::iterator it=s.begin();it!=s.end();it++){
cnt++;
if(cnt==3){ok=1;printf("%d\n",*it);}
}
if(!ok) printf("-1\n");
}
return 0;
}
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=52;
int a[maxn];
int main(){
int n;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
int cnt=0,k,ok=0;
for(int i=0;i<n;i++){
if(a[i+1]!=a[i]) cnt++;
if(cnt==2){ok=1;k=i+1;}
}
if(ok&&a[k]) printf("%d\n",a[k]);
else printf("-1\n");
}
return 0;
}