#G3004. 身高排队

    ID: 994 传统题 1000ms 512MiB 尝试: 15 已通过: 8 难度: 普及− 上传者: 标签>GESP三级一维数组桶排序2026模拟

身高排队

题目描述

体育课上,nn 名同学要按身高从矮到高排成一队。已知每名同学的身高 hih_i(单位:厘米,都是整数)。

请你完成三件事:

  1. 输出排好队之后从前到后每个人的身高(身高相同的同学都要输出);
  2. 输出这些同学一共有多少种不同的身高;
  3. 输出最高的同学比最矮的同学高多少厘米。

输入格式

第一行一个整数 nn,表示同学人数。

第二行 nn 个整数 h1,h2,…,hnh_1, h_2, \dots, h_n,表示每名同学的身高。

输出格式

共三行。

第一行 nn 个整数,表示从矮到高排好队后的身高,相邻两个数之间用一个空格隔开。

第二行一个整数,表示不同身高的种数。

第三行一个整数,表示最高与最矮的身高差。

样例 #1

样例输入 #1

8
150 162 148 162 171 150 162 155

样例输出 #1

148 150 150 155 162 162 162 171
5
23

样例解释

排好队后是 148,150,150,155,162,162,162,171148, 150, 150, 155, 162, 162, 162, 171。

不同的身高有 148,150,155,162,171148, 150, 155, 162, 171 共 55 种。最高 171171、最矮 148148,相差 2323 厘米。

提示

数据范围

  • 对于 40%40\% 的数据:n≤1000n \le 1000;
  • 对于 100%100\% 的数据:1≤n≤1051 \le n \le 10^5,100≤hi≤250100 \le h_i \le 250。

提示

  • 身高只有 100∼250100 \sim 250 这 151151 种可能,可以开一个计数数组 cnt,cnt[h] 记录身高为 hh 的人数。
  • 从 100100 到 250250 依次扫描计数数组,cnt[h] 是几就把 hh 输出几次,输出的序列天然就是从小到大的。