输入一个长度为 nn 的整数数列,从小到大输出前 mm 小的数。
输入格式
第一行包含整数 nn 和 mm。
第二行包含 nn 个整数,表示整数数列。
输出格式
共一行,包含 mm 个整数,表示整数数列中前 mm 小的数。
数据范围
1≤m≤n≤1051≤m≤n≤105,
1≤数列中元素≤1091≤数列中元素≤109
输入样例:
5 3 4 5 1 3 2
输出样例:
1 2 31,代码
#include2,堆是完全二叉树#include #include using namespace std; #define int long long const int N = 1e5+1; int a[N]; int Size=0; void down(int k) { int t=k; if(k*2<=Size&&a[k*2]> n>>m; Size=n; for (int i = 1; i <= n; i ++ ) { cin >> a[i]; } for (int i = n/2; i ; i -- )down(i); for (int i = m; i ; i -- ) { cout<
a[1]
a[2] a[3]
a[4] a[5] a[6] a[7]
......
up();
down() ;



