一个老板有一袋金块,里面有n块金子。每个月,老板会从袋子中拿出两个金块奖励两名期雇员。按规矩,最优秀的雇员将得到袋中最重的金块,排名第二的雇员将得到袋中最轻的金块。周期性地往袋中加入新的金块,那么每个月他都要找出最重和最轻的金块。假设有一台比较质量的仪器,我们希望用尽量少的比较次数找出最重和最轻的金块。
标签:
一个老板有一袋金块,里面有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; }
标签:
原文地址:http://www.cnblogs.com/TWS-YIFEI/p/5724194.html