C++编程:计算数字游戏的调整次数与最终最值
题目描述
老师给出一组数,要求小蓝按如下规则调整,计算调整总次数、调整结束时的最小数和最大数:
调整规则
- 第1次操作:从数组中选出一个最小的数,调整为和第二小的数一样大;
- 第2次操作:从数组中选出一个最大的数,调整为和第二大的数一样大;
- 重复执行上述1、2步骤;
- 当数组中不同的数少于3个时,结束调整。
样例说明
- 例1:输入数组为
2 2 2 2,不同数只有1种,无需调整,输出:0 2 2 - 例2:输入数组为
1 3 4 2,调整过程:- 最小数1改为2,数组变为
2 3 4 2; - 最大数4改为3,数组变为
2 3 3 2; 此时数组只有2、3两种数,调整结束,共调整2次,输出:2 2 3输入描述
- 最小数1改为2,数组变为
- 第一行输入正整数
N(3≤N≤1000000),表示数组元素个数; - 第二行输入
N个正整数(1≤正整数≤1000000),整数间用空格分隔。输出描述
输出一行三个整数,分别为总调整次数、调整结束时的最小值、最大值,整数间用空格分隔。
样例输入
4 1 3 4 2样例输出
2 2 3
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析