//C++版代码 #include <iostream> #include <queue> using namespace std; int main() { int n, m; while (cin >> n >> m) { if (n == 0 && m == 0) break; priority_queue<int> pq; for (int i = 0; i < n; i++) { int temp; cin >> temp; pq.push(temp); } while (!pq.empty() && m--) { cout << pq.top() << " "; pq.pop(); } cout << endl; } return 0; } //Java版代码 import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int n = sc.nextInt(); int m = sc.nextInt(); if (n == 0 && m == 0) break; PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.comparingInt(a -> -a)); while (n-- > 0) { pq.add(sc.nextInt()); } while (!pq.isEmpty() && m-- > 0) { System.out.print(pq.poll() + " "); } System.out.println(); } } } #Python版代码 from heapq import heapify, heappop while True: try: n, m = map(int, input().split()) if n == 0 and m == 0: break heap = list(map(lambda x: -int(x), input().split())) heapify(heap) while heap and m: print(-heappop(heap), end=" ") m -= 1 print() except: break