ACM:F: ACM小组的成绩排名
Description
为了保证每位ACMer学习的进度,检验其学习成果,每隔一段时间就要进行一次内部测验。Samsara被逼迫去评测,并且要给每个人一个分数,自然作为弱菜的他是没有时间和精力来进行排名统计了,希望会编程的你能帮他输出前三名的成绩。
Input
输入包含若干组数据,每组数据都有两行,第一行一个正整数n(3<=n<=1000000),第二行n个精确到百分位的浮点型小数,以空格隔开,分别代表第一个人到第n个人的成绩A[i](0<=A[i]<=100)。
读入以文件尾结束。
Output
对于每组输入对应一行输出。按顺序输出前三名的成绩,保留两位小数。
Sample Input
5 1.00 2.00 3.00 4.00 5.00
Sample Output
5.00 4.00 3.00
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
#define LL long long
#define N 1000005
using namespace std;
float a[N];
bool cmp(float a,float b)
{
return a<b;
}
int main()
{
int n,i;
while(cin>>n)
{
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n,cmp);
printf("%.2f %.2f %.2f\n",a[n-1],a[n-2],a[n-3]);
}
return 0;
}