金块问题-排序-找最大最小

<center>

问题 D: 金块问题

时间限制: 1 Sec  内存限制: 64 MB
提交: 18  解决: 17
[提交][状态][讨论版]
</center>

题目描述

一个老板有一袋金块,里面有n块金子。每个月,老板会从袋子中拿出两个金块奖励两名期雇员。按规矩,最优秀的雇员将得到袋中最重的金块,排名第二的雇员将得到袋中最轻的金块。周期性地往袋中加入新的金块,那么每个月他都要找出最重和最轻的金块。假设有一台比较质量的仪器,我们希望用尽量少的比较次数找出最重和最轻的金块。

输入

第1行只有一个整数n(2≤n≤100000)。
第2行n个长整型范围内的整数,每个整数之间用一个空格隔开,表示每块金子的质量。

输出

输出两个用空格分开的整数,表示最重和最轻的金块的质量。

样例输入

8
10 8 2 4 5 3 9 1

样例输出

10 1

代码:

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    long int n;
    long int maxx=0,minn=100000;
    long int a[100000];
    while(~scanf("%ld",&n)&&n){
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
            if(a[i]>=maxx){
                maxx=a[i];
            }
            if(a[i]<minn){
                minn=a[i];
            }
        }
        printf("%d %d",maxx,minn);

    }
    return 0;
}

 

全部评论

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务