第33718题 程序题
C++编程:计算数字游戏的调整次数与最终最值

题目描述

老师给出一组数,要求小蓝按如下规则调整,计算调整总次数、调整结束时的最小数和最大数:

调整规则

  1. 第1次操作:从数组中选出一个最小的数,调整为和第二小的数一样大;
  2. 第2次操作:从数组中选出一个最大的数,调整为和第二大的数一样大;
  3. 重复执行上述1、2步骤;
  4. 当数组中不同的数少于3个时,结束调整。

    样例说明

  • 例1:输入数组为2 2 2 2,不同数只有1种,无需调整,输出:0 2 2
  • 例2:输入数组为1 3 4 2,调整过程:
    1. 最小数1改为2,数组变为2 3 4 2
    2. 最大数4改为3,数组变为2 3 3 2; 此时数组只有2、3两种数,调整结束,共调整2次,输出:2 2 3

      输入描述

  1. 第一行输入正整数N3≤N≤1000000),表示数组元素个数;
  2. 第二行输入N个正整数(1≤正整数≤1000000),整数间用空格分隔。

    输出描述

    输出一行三个整数,分别为总调整次数、调整结束时的最小值、最大值,整数间用空格分隔。

    样例输入

    4
    1 3 4 2

    样例输出

    2 2 3
编辑模式
程序运行统计
暂无判题统计